
FUNCTION 0xdd2ba0
00dd2ba0 sub esp, 0x3c
00dd2ba3 push ebx
00dd2ba4 push esi
00dd2ba5 push edi
00dd2ba6 mov dword ptr [esp + 0x34], edx
00dd2baa mov ebx, ecx
00dd2bac call 0xda3620
00dd2bb1 mov eax, dword ptr [eax + 0x3094]
00dd2bb7 mov edx, dword ptr [ebx + 0x20]
00dd2bba mov esi, dword ptr [eax + 8]
00dd2bbd mov ecx, dword ptr [ebx + 0xc]
00dd2bc0 mov eax, dword ptr [esi + 0x10]
00dd2bc3 mov edi, dword ptr [ebx + 0x1c]
00dd2bc6 mov dword ptr [esp + 0x10], edx
00dd2bca mov edx, dword ptr [esi + 0x28]
00dd2bcd mov dword ptr [esp + 0x18], ecx
00dd2bd1 test dword ptr [ebx + 0x14], edx
00dd2bd4 jne 0xdd2be1
00dd2bd6 pop edi
00dd2bd7 pop esi
00dd2bd8 xor eax, eax
00dd2bda pop ebx
00dd2bdb add esp, 0x3c
00dd2bde ret 4
00dd2be1 mov edx, ecx
00dd2be3 and edx, 1
00dd2be6 neg edx
00dd2be8 push ebp
00dd2be9 mov ebp, dword ptr [ebx + 4]
00dd2bec and edx, eax
00dd2bee mov dword ptr [edi + 0x14], eax
00dd2bf1 mov dword ptr [esp + 0x10], ebp
00dd2bf5 mov dword ptr [ebx + 0x18], edx
00dd2bf8 test cl, 0x18
00dd2bfb je 0xdd2c4d
00dd2bfd mov eax, ecx
00dd2bff shr eax, 4
00dd2c02 and eax, 1
00dd2c05 test cl, 8
00dd2c08 je 0xdd2c37
00dd2c0a mov eax, dword ptr [edi + 0x18]
00dd2c0d movzx edx, word ptr [edi + 8]
00dd2c11 mov ecx, dword ptr [ebx + 0x20]
00dd2c14 push eax
00dd2c15 call 0xe08100
00dd2c1a add dword ptr [ebx + 0x10], eax
00dd2c1d mov ecx, dword ptr [esp + 0x1c]
00dd2c21 and eax, 1
00dd2c24 shl eax, 4
00dd2c27 shr ecx, 1
00dd2c29 and eax, ecx
00dd2c2b or eax, dword ptr [ebx + 0xc]
00dd2c2e mov dword ptr [ebx + 0xc], eax
00dd2c31 shr eax, 4
00dd2c34 and eax, 1
00dd2c37 test eax, eax
00dd2c39 je 0xdd2c4d
00dd2c3b mov edx, dword ptr [esp + 0x14]
00dd2c3f mov ecx, edi
00dd2c41 call 0xdd1c30
00dd2c46 add dword ptr [ebx + 0x10], eax
00dd2c49 and dword ptr [ebx + 0xc], 0xffffffef
00dd2c4d movzx eax, word ptr [edi + 0xc]
00dd2c51 mov edx, dword ptr [edi + 0x20]
00dd2c54 lea ecx, [eax + eax*4]
00dd2c57 lea eax, [eax*4 + 3]
00dd2c5e lea ecx, [edx + ecx*4]
00dd2c61 mov edx, eax
00dd2c63 and edx, 3
00dd2c66 sub eax, edx
00dd2c68 add eax, dword ptr [esp + 0x14]
00dd2c6c mov dword ptr [esp + 0x2c], ecx
00dd2c70 mov ecx, dword ptr [esi + 0x30]
00dd2c73 mov dword ptr [esp + 0x28], eax
00dd2c77 mov eax, dword ptr [esi + 0x2c]
00dd2c7a mov dword ptr [esp + 0x20], eax
00dd2c7e mov dword ptr [esp + 0x24], ecx
00dd2c82 mov dword ptr [esp + 0x18], 0
00dd2c8a jmp 0xdd2c94
00dd2c8c lea esp, [esp]
00dd2c90 mov ebp, dword ptr [esp + 0x10]
00dd2c94 mov ecx, dword ptr [ebp + 8]
00dd2c97 and ecx, dword ptr [esp + 0x20]
00dd2c9b mov eax, ebp
00dd2c9d neg ecx
00dd2c9f sbb ecx, ecx
00dd2ca1 sub eax, dword ptr [esp + 0x28]
00dd2ca5 neg ecx
00dd2ca7 sar eax, 4
00dd2caa mov edx, eax
00dd2cac shl edx, 4
00dd2caf sub edx, eax
00dd2cb1 mov eax, dword ptr [esp + 0x2c]
00dd2cb5 neg ecx
00dd2cb7 and ecx, dword ptr [ebp + 4]
00dd2cba lea edi, [eax + edx*4]
00dd2cbd and ecx, dword ptr [esp + 0x24]
00dd2cc1 mov eax, dword ptr [edi + 0x20]
00dd2cc4 mov dword ptr [esp + 0x3c], edi
00dd2cc8 mov dword ptr [esp + 0x40], ebx
00dd2ccc jne 0xdd2cd6
00dd2cce mov ecx, dword ptr [ebp + 0xc]
00dd2cd1 jmp 0xdd2e21
00dd2cd6 mov ecx, dword ptr [eax + 8]
00dd2cd9 movzx edx, word ptr [edi + 0x10]
00dd2cdd and ecx, 0xffffc003
00dd2ce3 mov dword ptr [esp + 0x34], edx
00dd2ce7 cmp dword ptr [esi + 0xb0], ecx
00dd2ced je 0xdd2cfa
00dd2cef mov dword ptr [esi + 0xb0], ecx
00dd2cf5 call 0xdd2ae0
00dd2cfa cmp byte ptr [esi + 0x330], 0
00dd2d01 mov byte ptr [esi + 0x331], 1
00dd2d08 je 0xdd2d16
00dd2d0a mov edx, 1
00dd2d0f mov ecx, esi
00dd2d11 call 0xdb2210
00dd2d16 movzx ebp, word ptr [edi + 0xc]
00dd2d1a mov al, byte ptr [ebx + 0xc]
00dd2d1d movzx ecx, word ptr [edi + 0xa]
00dd2d21 mov edx, dword ptr [esi + 0x1c]
00dd2d24 add ebp, dword ptr [ebx + 0x20]
00dd2d27 and al, 1
00dd2d29 mov dword ptr [esp + 0x30], ecx
00dd2d2d cmp edx, dword ptr [esi + 0x20]
00dd2d30 jne 0xdd2d38
00dd2d32 lea eax, [esp + 0x44]
00dd2d36 jmp 0xdd2d90
00dd2d38 mov ecx, dword ptr [esi + 0x18]
00dd2d3b sub ecx, 8
00dd2d3e mov edx, ecx
00dd2d40 and edx, 3
00dd2d43 sub ecx, edx
00dd2d45 mov dword ptr [esi + 0x18], ecx
00dd2d48 mov dword ptr [esp + 0x1c], ecx
00dd2d4c test al, al
00dd2d4e jne 0xdd2d8e
00dd2d50 mov eax, dword ptr [esp + 0x30]
00dd2d54 test eax, eax
00dd2d56 jle 0xdd2d8e
00dd2d58 add eax, 3
00dd2d5b mov edx, eax
00dd2d5d and edx, 3
00dd2d60 sub eax, edx
00dd2d62 sub ecx, eax
00dd2d64 mov edx, ecx
00dd2d66 and edx, 3
00dd2d69 sub ecx, edx
00dd2d6b add eax, ecx
00dd2d6d mov dword ptr [esi + 0x18], ecx
00dd2d70 mov edx, ecx
00dd2d72 mov dword ptr [esp + 0x30], eax
00dd2d76 sub ebp, ecx
00dd2d78 mov eax, dword ptr [edx + ebp]
00dd2d7b mov dword ptr [edx], eax
00dd2d7d add edx, 4
00dd2d80 cmp edx, dword ptr [esp + 0x30]
00dd2d84 jb 0xdd2d78
00dd2d86 mov eax, dword ptr [esp + 0x1c]
00dd2d8a mov ebp, ecx
00dd2d8c jmp 0xdd2d90
00dd2d8e mov eax, ecx
00dd2d90 push eax
00dd2d91 mov edx, 0xdd1f80
00dd2d96 mov ecx, esi
00dd2d98 mov dword ptr [eax], edi
00dd2d9a mov dword ptr [eax + 4], ebp

FUNCTION 0xdb57a0
00db57a0 sub esp, 0x48
00db57a3 mov eax, dword ptr [esp + 0x4c]
00db57a7 mov edx, dword ptr [eax + 0x14]
00db57aa push ebx
00db57ab push ebp
00db57ac mov ebp, dword ptr [eax + 0x10]
00db57af push esi
00db57b0 mov esi, dword ptr [eax]
00db57b2 push edi
00db57b3 mov ebx, ecx
00db57b5 mov ecx, dword ptr [eax + 8]
00db57b8 xor edi, edi
00db57ba mov dword ptr [esp + 0x20], ebx
00db57be mov dword ptr [esp + 0x28], ebp
00db57c2 mov dword ptr [esp + 0x10], ecx
00db57c6 mov dword ptr [esp + 0x30], edx
00db57ca mov dword ptr [esp + 0x24], esi
00db57ce mov dword ptr [esp + 0x2c], edi
00db57d2 cmp dword ptr [0x1457720], edi
00db57d8 je 0xdb5806
00db57da test dword ptr [eax + 0xc], 0x8000
00db57e1 je 0xdb5806
00db57e3 push 1
00db57e5 lea edx, [edi + 1]
00db57e8 mov ecx, ebx
00db57ea call 0xdad730
00db57ef push edi
00db57f0 push 2
00db57f2 lea edx, [edi + 1]
00db57f5 mov ecx, ebx
00db57f7 mov dword ptr [esp + 0x34], eax
00db57fb call 0xdb12e0
00db5800 jmp 0xdb5806
00db5802 mov ebp, esi
00db5804 mov esi, ecx
00db5806 mov edx, dword ptr [esp + 0x10]
00db580a mov eax, edi
00db580c shl eax, 6
00db580f mov ecx, edi
00db5811 lea eax, [eax + edx + 0x24]
00db5815 inc ecx
00db5816 add eax, 0x40
00db5819 cmp ecx, esi
00db581b jge 0xdb5829
00db581d movzx edx, word ptr [eax - 2]
00db5821 mov edx, dword ptr [ebp + edx*4]
00db5825 test dword ptr [eax], edx
00db5827 jne 0xdb5815
00db5829 mov dword ptr [esp + 0x14], ecx
00db582d lea ecx, [ecx]
00db5830 mov edx, dword ptr [esp + 0x30]
00db5834 mov ebp, dword ptr [ebx + 0x58]
00db5837 mov esi, edi
00db5839 shl esi, 6
00db583c add esi, dword ptr [esp + 0x10]
00db5840 movzx eax, word ptr [esi + 0x28]
00db5844 shl eax, 5
00db5847 add eax, dword ptr [edx + 0x1c]
00db584a mov edx, dword ptr [ebx + 0x54]
00db584d mov ecx, dword ptr [eax + 8]
00db5850 sub ecx, dword ptr [eax + 0xc]
00db5853 mov eax, dword ptr [eax + 0x18]
00db5856 xor edx, eax
00db5858 xor ebp, ecx
00db585a or edx, ebp
00db585c je 0xdb586f
00db585e push ecx
00db585f mov dword ptr [ebx + 0x58], ecx
00db5862 push eax
00db5863 xor edx, edx
00db5865 mov ecx, ebx
00db5867 mov dword ptr [ebx + 0x54], eax
00db586a call 0xdb0f20
00db586f movzx eax, word ptr [esi + 0x2c]
00db5873 mov ecx, dword ptr [esp + 0x14]
00db5877 inc eax
00db5878 sub ecx, edi
00db587a cmp ecx, eax
00db587c jge 0xdb5886
00db587e mov ebp, ecx
00db5880 mov dword ptr [esp + 0x1c], ebp
00db5884 jmp 0xdb588c
00db5886 mov ebp, eax
00db5888 mov dword ptr [esp + 0x1c], eax
00db588c cmp ebp, 1
00db588f jg 0xdb58a0
00db5891 mov edx, esi
00db5893 mov ecx, ebx
00db5895 call 0xdb2830
00db589a inc edi
00db589b jmp 0xdb596c
00db58a0 lea eax, [edi + ebp - 1]
00db58a4 mov ecx, eax
00db58a6 shl ecx, 6
00db58a9 add ecx, dword ptr [esp + 0x10]
00db58ad lea ebx, [edi + 1]
00db58b0 mov edx, dword ptr [ecx + 8]
00db58b3 sub edx, dword ptr [esi + 4]
00db58b6 add edx, dword ptr [ecx + 4]
00db58b9 mov ecx, dword ptr [esi]
00db58bb mov dword ptr [esp + 0x38], ecx
00db58bf mov ecx, dword ptr [esi + 4]
00db58c2 mov dword ptr [esp + 0x3c], ecx
00db58c6 mov ecx, dword ptr [esi + 8]
00db58c9 mov dword ptr [esp + 0x40], ecx
00db58cd mov ecx, dword ptr [esi + 0xc]
00db58d0 mov dword ptr [esp + 0x44], ecx
00db58d4 mov ecx, dword ptr [esi + 0x10]
00db58d7 mov dword ptr [esp + 0x48], ecx
00db58db mov ecx, dword ptr [esi + 0x14]
00db58de mov dword ptr [esp + 0x4c], ecx
00db58e2 mov ecx, dword ptr [esi + 0x18]
00db58e5 mov dword ptr [esp + 0x50], ecx
00db58e9 mov ecx, dword ptr [esi + 0x1c]
00db58ec mov dword ptr [esp + 0x54], ecx
00db58f0 mov ecx, dword ptr [esi + 0x14]
00db58f3 mov esi, dword ptr [esi + 0x18]
00db58f6 mov dword ptr [esp + 0x40], edx
00db58fa mov dword ptr [esp + 0x34], ecx
00db58fe lea esi, [esi + ecx - 1]
00db5902 cmp ebx, eax
00db5904 jg 0xdb5941
00db5906 mov ebp, dword ptr [esp + 0x10]
00db590a mov ecx, ebx
00db590c shl ecx, 6
00db590f sub eax, ebx
00db5911 inc eax
00db5912 lea ebp, [ecx + ebp + 0x14]
00db5916 mov ecx, dword ptr [esp + 0x34]
00db591a mov dword ptr [esp + 0x18], eax
00db591e mov edi, edi
00db5920 mov eax, dword ptr [ebp]
00db5923 mov ebx, dword ptr [ebp + 4]
00db5926 lea ebx, [ebx + eax - 1]
00db592a cmp esi, ebx
00db592c cmovle esi, ebx
00db592f cmp ecx, eax
00db5931 cmovge ecx, eax
00db5934 add ebp, 0x40
00db5937 dec dword ptr [esp + 0x18]
00db593b jne 0xdb5920
00db593d mov ebp, dword ptr [esp + 0x1c]
00db5941 sub esi, ecx
00db5943 mov dword ptr [esp + 0x4c], ecx
00db5947 mov ecx, dword ptr [esp + 0x38]
00db594b inc esi
00db594c mov dword ptr [esp + 0x50], esi
00db5950 call 0xdd1f60
00db5955 mov ecx, dword ptr [esp + 0x20]
00db5959 lea edx, [esp + 0x38]
00db595d mov dword ptr [esp + 0x44], eax
00db5961 add edi, ebp
00db5963 call 0xdb2830
00db5968 mov ebx, dword ptr [esp + 0x20]
00db596c cmp edi, dword ptr [esp + 0x14]
00db5970 jl 0xdb5830
00db5976 mov eax, dword ptr [esp + 0x14]
00db597a mov ecx, dword ptr [esp + 0x24]
00db597e mov edi, eax
00db5980 cmp eax, ecx
00db5982 jge 0xdb59b1
00db5984 mov edx, dword ptr [esp + 0x10]
00db5988 shl eax, 6
00db598b lea eax, [eax + edx + 0x24]
00db598f nop 
00db5990 movzx edx, word ptr [eax - 2]
00db5994 mov esi, dword ptr [esp + 0x28]
00db5998 mov edx, dword ptr [esi + edx*4]
00db599b test dword ptr [eax], edx
00db599d jne 0xdb59a9
00db599f inc edi
