Function at 0x43a590
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov eax, 0x252c
push edi
push esi
push ebx
call fcn.00443b10
sub esp, eax
mov ebx, dword [esp + 0x2544]
lea esi, [esp + 0x12e0]
mov ebx, dword [ebx + 0x1104]
mov dword [esp + 0xf8], ebx
mov ebx, dword [esp + 0x2540]
mov ebx, dword [ebx + 0x122c]
mov dword [esp + 4], 0
mov dword [esp], esi
imul eax, ebx, 0x490
mov dword [esp + 0x3c], ebx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
test ebx, ebx
jle 0x43a763
mov ebx, dword [esp + 0x2548]
xor ebp, ebp
mov esi, dword [esp + 0x2540]
mov edi, dword [esp + 0x2544]
mov eax, dword [esp + 0x2544]
movsx ebx, byte [ebx + 0x22]
add edi, 0xf00
add eax, 0x10c0
mov dword [esp + 0x154], edi
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x2544]
mov dword [esp + 0x10c], eax
mov ebx, dword [ebx + 0x1100]
mov dword [esp + 0x44], ebx
mov ebx, dword [esi + 0x1208]
mov dword [esp + 0x48], ebx
jmp 0x43a6e8
mov ecx, ebx
shr ecx, 2
test bl, 2
rep movsd dword es:[edi], dword [esi]
je 0x43a667
movzx ecx, word [esi]
mov word [edi], cx
mov ecx, 2
and ebx, 1
je 0x43a673
movzx ebx, byte [esi + ecx]
mov byte [edi + ecx], bl
mov esi, dword [eax]
lea ecx, [edx + 0x440]
add ebp, 1
cmp ebp, dword [esp + 0x3c]
mov dword [edx + 0x440], esi
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax + 0x10]
mov dword [ecx + 0x10], edx
mov edx, dword [eax + 0x14]
mov dword [ecx + 0x14], edx
mov edx, dword [eax + 0x18]
mov dword [ecx + 0x18], edx
mov edx, dword [eax + 0x1c]
mov dword [ecx + 0x1c], edx
mov edx, dword [eax + 0x20]
mov dword [ecx + 0x20], edx
mov edx, dword [eax + 0x24]
mov dword [ecx + 0x24], edx
mov edx, dword [eax + 0x28]
mov dword [ecx + 0x28], edx
mov edx, dword [eax + 0x2c]
mov dword [ecx + 0x2c], edx
mov edx, dword [eax + 0x30]
mov dword [ecx + 0x30], edx
mov edx, dword [eax + 0x34]
mov dword [ecx + 0x34], edx
mov edx, dword [eax + 0x38]
mov dword [ecx + 0x38], edx
mov edx, dword [eax + 0x3c]
mov dword [ecx + 0x3c], edx
je 0x43c341
imul edx, ebp, 0x490
mov ebx, dword [esp + 0x44]
lea ecx, [esp + 0x12e0]
mov esi, dword [esp + 0x2544]
add edx, ecx
mov ecx, dword [esp + 0x40]
mov dword [edx + 0x480], ebx
mov ebx, dword [esp + 0x48]
mov edi, edx
mov dword [edx + 0x48c], 0
add ecx, ebp
and ecx, 3
test dl, 2
mov dword [edx + 0x484], ecx
mov dword [edx + 0x488], ecx
mov ecx, dword [esi + ebx*4 + 0x4fc]
mov ebx, pe_nt_image_headers32
mov esi, dword [esp + 0x154]
mov dword [edx + 0x3c0], ecx
je 0x43a650
movzx ecx, word [esi]
add edi, 2
add esi, 2
sub ebx, 2
mov word [edx], cx
jmp 0x43a650
mov edi, dword [esp + 0x2540]
mov eax, dword [esp + 0x2544]
mov edx, dword [esp + 0x2544]
mov ebx, dword [edi + 0x1208]
add eax, 0xf00
add edx, 0x10c0
mov dword [esp + 0x154], eax
mov dword [esp + 0x10c], edx
mov esi, dword [esp + 0x2548]
movzx eax, byte [esi + 0x1d]
movsx edx, byte [esi + 0x1e]
mov ecx, eax
sar cl, 1
cmp dword [edi + 0x1204], 0x20
movsx ecx, cl
lea edx, [edx + ecx*2]
movsx edx, word [edx + edx + 0x455764]
mov dword [esp + 0xa4], edx
mov edx, 0x20
cmovle edx, dword [edi + 0x1204]
cmp al, 2
mov dword [esp + 0xe4], edx
je 0x43c2d0
mov eax, dword [esp + 0xf8]
test eax, eax
jle 0x43c2be
mov eax, dword [esp + 0xf8]
mov edi, dword [esp + 0x2540]
sub eax, 3
cmp dword [esp + 0xe4], eax
mov ecx, dword [edi + 0x11fc]
cmovle eax, dword [esp + 0xe4]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x2548]
mov esi, dword [esp + 0x2544]
mov edi, dword [esp + 0x2544]
cmp byte [eax + 0x1f], 4
lea esi, [esi + ebx*2]
mov dword [edi + 0x110c], ebx
mov dword [esp + 0x13c], esi
setne al
test ecx, ecx
mov dword [edi + 0x1108], ebx
movzx edx, al
jle 0x43cc39
movsx ebx, word [esp + 0x2574]
movzx eax, al
mov dword [esp + 0x14c], 3
mov dword [esp + 0x150], 1
add eax, eax
sub dword [esp + 0x14c], eax
mov dword [esp + 0xb0], 0
sub dword [esp + 0x150], edx
mov dword [esp + 0x12c], 0
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x110], 0
add ebx, 0x3b0
mov dword [esp + 0xec], ebx
mov ebx, dword [esp + 0xa4]
imul ebx, dword [esp + 0xb4]
mov dword [esp + 0xf4], ebx
movsx ebx, word [esp + 0xec]
imul ebx, dword [esp + 0xb4]
mov dword [esp + 0x100], ebx
mov ebx, dword [esp + 0xa4]
sub ebx, 0x3b0
mov dword [esp + 0x134], ebx
mov ebx, dword [esp + 0x2558]
movzx eax, word [esp + 0x134]
mov dword [esp + 0x108], ebx
mov ebx, dword [esp + 0x255c]
neg eax
cwde
imul eax, dword [esp + 0xb4]
mov dword [esp + 0xdc], ebx
movsx ebx, word [esp + 0x2578]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x15c], ebx
neg eax
add eax, eax
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x110]
mov ebx, dword [esp + 0x110]
mov esi, dword [esp + 0x2560]
sar eax, 1
or eax, dword [esp + 0x150]
shl eax, 5
add eax, dword [esp + 0x2554]
mov dword [esp + 0x60], eax
mov eax, dword [esi + ebx*4]
mov ebx, dword [esp + 0x2544]
mov esi, dword [esp + 0x2570]
mov edx, eax
sar eax, 1
mov dword [ebx + 0x1118], 0
sar edx, 2
shl eax, 0x10
mov ebx, dword [esp + 0x2548]
or eax, edx
mov dword [esp + 0x40], eax
movzx ebx, byte [ebx + 0x1d]
mov byte [esp + 0x6c], bl
cmp bl, 2
mov ebx, dword [esp + 0x110]
mov ebx, dword [esi + ebx*4]
je 0x43cbb4
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x2544]
mov ebx, dword [ebx + 0x1108]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x12c]
mov dword [esp + 0x50], 0
mov dword [esp + 0x68], ebx
add ebx, 1
mov dword [esp + 0x12c], ebx
mov ebx, dword [esp + 0x2540]
mov edx, 1
mov esi, dword [esp + 0x256c]
mov ebx, dword [ebx + 0x122c]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x110]
mov ebp, dword [esi + ebx*4]
test ebp, ebp
cmovg edx, ebp
test edx, 0xffff0000
jne 0x43c11c
test dx, dx
mov eax, edx
mov ebx, 0xffffffef
mov ecx, 0x1f
jne 0x43c183
mov esi, edx
mov eax, 0x1fffffff
shl esi, cl
mov edx, eax
mov ecx, esi
sar edx, 0x1f
sar ecx, 0x10
idiv ecx
movsx edx, ax
mov edi, eax
mov eax, esi
and eax, 0xffff
imul ecx, edx
mov esi, edx
imul eax, edx
sar eax, 0x10
add eax, ecx
mov ecx, edi
shl eax, 3
shl ecx, 0x10
neg eax
mov dword [esp + 0x38], ecx
mov ecx, eax
sar ecx, 0x10
imul esi, ecx
movzx ecx, ax
imul edx, ecx
mov ecx, edi
sar ecx, 0xf
add ecx, 1
sar edx, 0x10
sar ecx, 1
add edx, esi
imul eax, ecx
add edx, dword [esp + 0x38]
test ebx, ebx
lea esi, [edx + eax]
jle 0x43cb85
cmp ebx, 0x1f
jg 0x43cb05
mov ecx, ebx
sar esi, cl
mov edi, esi
sar edi, 7
add edi, 1
sar edi, 1
mov ebx, dword [esp + 0x2544]
mov dword [esp + 0x38], 0x10000
mov ebx, dword [ebx + 0x1114]
cmp ebp, ebx
mov dword [esp + 0x3c], ebx
je 0x43abf1
mov edx, ebx
mov eax, ebx
sar edx, 0x1f
xor eax, edx
sub eax, edx
test eax, 0xffff0000
jne 0x43c8b6
test ax, ax
mov ebx, 0x3c
mov ecx, 0x1f
jne 0x43c7ff
mov eax, dword [esp + 0x3c]
mov edx, ebp
sar edx, 0x1f
shl eax, cl
mov dword [esp + 0x48], eax
mov eax, edx
xor eax, ebp
sub eax, edx
test eax, 0xffff0000
jne 0x43c764
test ax, ax
mov ecx, 0x1f
jne 0x43c726
mov edx, ebp
mov eax, 0x1fffffff
sub ebx, ecx
shl edx, cl
mov ecx, ebx
mov dword [esp + 0x3c], edx
sar edx, 0x10
mov dword [esp + 0x54], edx
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x54]
mov edx, dword [esp + 0x48]
sar edx, 0x10
cwde
mov dword [esp + 0x38], eax
imul edx, eax
movzx eax, word [esp + 0x48]
imul eax, dword [esp + 0x38]
sar eax, 0x10
add eax, edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x3c]
imul dword [esp + 0x54]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
shl eax, 3
sub edx, eax
mov eax, edx
sar edx, 0x10
imul edx, dword [esp + 0x38]
and eax, 0xffff
imul eax, dword [esp + 0x38]
sar eax, 0x10
add eax, edx
add eax, dword [esp + 0x54]
sub ecx, 0x10
mov dword [esp + 0x38], eax
js 0x43c351
sar eax, cl
mov dword [esp + 0x38], 0
cmp ecx, 0x1f
cmovg eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
mov ebx, dword [esp + 0x2540]
mov ebx, dword [ebx + 0x1204]
test ebx, ebx
mov dword [esp + 0x114], ebx
jle 0x43ac5e
lea edx, [esp + 0x2a0]
movsx eax, di
sar edi, 0xf
add edi, 1
mov dword [esp + 0x3c], eax
xor ebx, ebx
sar edi, 1
mov dword [esp + 0x48], edx
mov ecx, dword [esp + 0x254c]
mov edx, dword [ecx + ebx*4]
movzx eax, dx
mov ecx, edx
sar ecx, 0x10
imul edx, edi
imul eax, dword [esp + 0x3c]
imul ecx, dword [esp + 0x3c]
sar eax, 0x10
add eax, ecx
add eax, edx
mov edx, dword [esp + 0x48]
mov dword [edx + ebx*4], eax
add ebx, 1
cmp ebx, dword [esp + 0x114]
jne 0x43ac25
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x2544]
test eax, eax
mov dword [ebx + 0x1114], ebp
je 0x43ace7
mov eax, dword [esp + 0x110]
test eax, eax
jne 0x43aca6
mov eax, esi
mov edx, esi
and eax, 0xffff
sar edx, 0x10
imul eax, dword [esp + 0x15c]
imul edx, dword [esp + 0x15c]
sar eax, 0x10
add eax, edx
lea esi, [eax*4]
mov ecx, dword [esp + 0x44]
sub ecx, dword [esp + 0x4c]
sub ecx, 2
cmp ecx, dword [esp + 0x44]
jge 0x43ace7
mov ebx, esi
and esi, 0xffff
sar ebx, 0x10
movsx eax, word [esp + ecx*2 + 0x3e0]
mov edx, eax
imul eax, esi
imul edx, ebx
sar eax, 0x10
add eax, edx
mov dword [esp + ecx*4 + 0x8e0], eax
add ecx, 1
cmp ecx, dword [esp + 0x44]
jne 0x43acc2
mov ebx, dword [esp + 0x2544]
cmp dword [esp + 0x38], 0x10000
mov ebx, dword [ebx + 0x110c]
mov dword [esp + 0x48], ebx
je 0x43b17d
mov eax, ebx
mov ebx, dword [esp + 0x2540]
sub eax, dword [ebx + 0x1208]
cmp dword [esp + 0x48], eax
jle 0x43ad6a
mov ebx, dword [esp + 0x2544]
mov ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
movzx edi, word [esp + 0x38]
lea eax, [ebx + eax*4 + 0x500]
sar ebp, 0x10
lea esi, [ebx + edx*4 + 0x500]
mov ecx, dword [eax]
movsx edx, cx
sar ecx, 0xf
mov ebx, edx
imul edx, edi
add ecx, 1
imul ebx, ebp
sar ecx, 1
imul ecx, dword [esp + 0x38]
sar edx, 0x10
add edx, ebx
add edx, ecx
mov dword [eax], edx
add eax, 4
cmp eax, esi
jne 0x43ad40
cmp byte [esp + 0x6c], 2
je 0x43cb0e
mov eax, dword [esp + 0x5c]
test eax, eax
jle 0x43b17d
mov ecx, dword [esp + 0x38]
lea ebx, [esp + 0x12e0]
imul eax, dword [esp + 0x5c], 0x490
mov esi, ebx
movzx ebp, word [esp + 0x38]
sar ecx, 0x10
add esi, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x4c], esi
mov edx, dword [ebx + 0x480]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x3c]
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov dword [ebx + 0x480], eax
xor eax, eax
lea esi, [esi]
mov ecx, dword [ebx + eax*4]
movsx edx, cx
sar ecx, 0xf
mov esi, edx
imul edx, ebp
add ecx, 1
imul esi, edi
sar ecx, 1
imul ecx, dword [esp + 0x38]
sar edx, 0x10
add edx, esi
add edx, ecx
mov dword [ebx + eax*4], edx
add eax, 1
cmp eax, 0x20
jne 0x43ade0
mov edx, dword [ebx + 0x440]
mov ecx, dword [esp + 0x3c]
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x444]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x440], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x448]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x444], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x44c]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x448], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x450]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x44c], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x454]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x450], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x458]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x454], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x45c]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x458], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x460]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x45c], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov dword [ebx + 0x460], eax
mov edx, dword [ebx + 0x464]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x50], ebx
mov esi, dword [esp + 0x3c]
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x468]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x464], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x46c]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x468], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x470]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x46c], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x474]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x470], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x478]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x474], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
mov edx, dword [ebx + 0x47c]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x478], eax
movsx eax, dx
imul ecx, eax
imul eax, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
xor ecx, ecx
mov dword [ebx + 0x47c], eax
lea eax, [ebx + 0x340]
lea esi, [esi]
mov ebx, dword [eax]
add ecx, 1
movsx edx, bx
sar ebx, 0xf
mov edi, edx
imul edx, ebp
add ebx, 1
imul edi, esi
sar ebx, 1
imul ebx, dword [esp + 0x38]
sar edx, 0x10
add edx, edi
add edx, ebx
mov ebx, dword [eax + 0x80]
mov dword [eax], edx
movsx edx, bx
sar ebx, 0xf
mov edi, edx
imul edx, ebp
add ebx, 1
imul edi, esi
sar ebx, 1
imul ebx, dword [esp + 0x38]
sar edx, 0x10
add edx, edi
add edx, ebx
mov dword [eax + 0x80], edx
add eax, 4
cmp ecx, 0x20
jne 0x43b110
mov ebx, dword [esp + 0x50]
add ebx, 0x490
cmp ebx, dword [esp + 0x4c]
jne 0x43ada8
mov ebx, dword [esp + 0x2540]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x2548]
mov ebp, dword [esp + 0x114]
mov esi, dword [ebx + 0x1238]
mov edi, dword [ebx + 0x1234]
mov edx, dword [ebx + 0x125c]
mov ebx, dword [esp + 0x110]
mov dword [esp + 0xcc], esi
mov esi, dword [esp + 0x2568]
sub eax, dword [esp + 0xf8]
mov dword [esp + 0xc8], edi
movzx ecx, byte [ecx + 0x1d]
mov ebx, dword [esi + ebx*4]
mov esi, dword [esp + 0x2564]
mov byte [esp + 0x14a], cl
mov dword [esp + 0x120], ebx
mov ebx, dword [esp + 0x110]
mov ebx, dword [esi + ebx*4]
mov esi, dword [esp + 0x256c]
mov dword [esp + 0x128], ebx
mov ebx, dword [esp + 0x2544]
lea eax, [ebx + eax*4 + 0x504]
mov ebx, dword [esp + 0x110]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x44]
mov ebx, dword [esi + ebx*4]
sub eax, dword [esp + 0xf8]
sar ebx, 6
test ebp, ebp
lea eax, [esp + eax*4 + 0x8e8]
mov dword [esp + 0x118], ebx
mov dword [esp + 0xf0], eax
jle 0x43bbfc
mov ecx, edi
mov ebx, edi
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x40]
movsx edx, dx
mov dword [esp + 0xac], 0
mov dword [esp + 0x38], edx
test edi, edi
mov edi, dword [esp + 0xcc]
setg byte [esp + 0x14b]
sar esi, 0x10
sub ebx, 1
sar ecx, 1
mov dword [esp + 0xfc], esi
mov esi, dword [esp + 0xdc]
mov dword [esp + 0xd0], ebx
sar edi, 1
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0xd4], edi
mov edi, dword [esp + 0x120]
lea esi, [esi + ebx*2]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x130], esi
lea esi, [esp + 0x1e4]
lea ecx, [ecx*4 - 0xc]
sar edi, 0x10
and ecx, 0xfffffff8
lea eax, [ebx + ebx*2]
mov ebx, dword [esp + 0x13c]
mov dword [esp + 0xa8], edi
shl eax, 4
mov dword [esp + 0x11c], ecx
add esi, eax
mov dword [esp + 0x138], esi
movsx esi, word [esp + 0x40]
add ebx, dword [esp + 0x158]
mov dword [esp + 0x104], esi
mov dword [esp + 0x140], ebx
cmp byte [esp + 0x14a], 2
mov dword [esp + 0x64], 0
je 0x43bff2
mov esi, dword [esp + 0xf8]
mov dword [esp + 0xbc], 0
test esi, esi
jle 0x43b3a6
mov edi, dword [esp + 0xe8]
mov eax, dword [edi]
mov ecx, dword [edi - 4]
add eax, dword [edi - 8]
add edi, 4
mov dword [esp + 0xe8], edi
mov edx, eax
and eax, 0xffff
imul eax, dword [esp + 0x104]
sar edx, 0x10
imul edx, dword [esp + 0x104]
sar eax, 0x10
add edx, eax
mov eax, ecx
sar eax, 0x10
imul eax, dword [esp + 0xfc]
add edx, eax
movzx eax, cx
imul eax, dword [esp + 0xfc]
sar eax, 0x10
add eax, edx
mov edx, dword [esp + 0x64]
shl eax, 2
sub edx, eax
mov dword [esp + 0xbc], edx
mov ebx, dword [esp + 0x5c]
test ebx, ebx
jle 0x43c0d0
mov edi, dword [esp + 0x60]
lea eax, [esp + 0x1e0]
movsx ebx, word [esp + 0x128]
movsx esi, word [esp + 0x120]
mov ecx, dword [esp + 0xac]
movsx edi, word [edi]
mov dword [esp + 0x98], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x9c], esi
mov esi, dword [esp + 0x60]
add ecx, 0x1f
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x60]
movsx ebx, word [ebx + 2]
mov dword [esp + 0xb8], ecx
shl ecx, 2
movsx esi, word [esi + 4]
movsx edi, word [edi + 6]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0x60]
movsx ebx, word [ebx + 8]
movsx esi, word [esi + 0xa]
movsx edi, word [edi + 0xc]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x60]
movsx ebx, word [ebx + 0xe]
movsx esi, word [esi + 0x10]
movsx edi, word [edi + 0x12]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], esi
lea esi, [esp + 0x12e0]
mov dword [esp + 0x90], edi
mov ebx, dword [esp + 0xdc]
lea edi, [esp + 0x2a0]
mov edx, dword [esp + 0x130]
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x44], esi
mov dword [esp + 0x50], 0
movsx ebx, word [ebx]
mov dword [esp + 0xc4], edi
movsx edx, word [edx]
mov dword [esp + 0x68], eax
add ecx, 8
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x94], ebx
mov dword [esp + 0xa0], edx
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0xb8]
lea eax, [ebx + ebx*2]
shl eax, 4
add eax, dword [esp + 0x68]
mov dword [esp + 0x48], eax
imul eax, dword [esi + 0x484], 0xbb38435
add eax, 0x3619636b
mov dword [esi + 0x484], eax
mov edi, dword [esi + edx*4]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xc0]
mov edx, edi
mov ebx, edi
and edx, 0xffff
sar ebx, 0x10
add eax, esi
imul edx, dword [esp + 0x6c]
imul ebx, dword [esp + 0x6c]
sar edx, 0x10
add ebx, edx
mov edx, dword [eax - 4]
add ebx, dword [esp + 0xd4]
mov ecx, edx
and edx, 0xffff
imul edx, dword [esp + 0x70]
sar ecx, 0x10
imul ecx, dword [esp + 0x70]
sar edx, 0x10
add edx, ecx
add ebx, edx
mov edx, dword [eax - 8]
mov ecx, edx
and edx, 0xffff
imul edx, dword [esp + 0x74]
sar ecx, 0x10
imul ecx, dword [esp + 0x74]
sar edx, 0x10
add edx, ecx
add ebx, edx
mov edx, dword [eax - 0xc]
mov ecx, edx
and edx, 0xffff
imul edx, dword [esp + 0x78]
sar ecx, 0x10
imul ecx, dword [esp + 0x78]
sar edx, 0x10
add edx, ecx
add ebx, edx
mov edx, dword [eax - 0x10]
mov ecx, edx
sar ecx, 0x10
and edx, 0xffff
imul edx, dword [esp + 0x7c]
imul ecx, dword [esp + 0x7c]
sar edx, 0x10
add edx, ecx
add ebx, edx
mov edx, dword [eax - 0x14]
mov ecx, edx
and edx, 0xffff
imul edx, dword [esp + 0x80]
sar ecx, 0x10
imul ecx, dword [esp + 0x80]
sar edx, 0x10
add edx, ecx
add ebx, edx
mov edx, dword [eax - 0x18]
mov ecx, edx
and edx, 0xffff
imul edx, dword [esp + 0x84]
sar ecx, 0x10
imul ecx, dword [esp + 0x84]
sar edx, 0x10
add edx, ecx
mov ecx, dword [eax - 0x1c]
add edx, ebx
mov ebx, ecx
and ecx, 0xffff
imul ecx, dword [esp + 0x88]
sar ebx, 0x10
imul ebx, dword [esp + 0x88]
sar ecx, 0x10
lea esi, [ebx + ecx]
mov ecx, dword [eax - 0x20]
add esi, edx
mov ebx, ecx
and ecx, 0xffff
imul ecx, dword [esp + 0x8c]
sar ebx, 0x10
imul ebx, dword [esp + 0x8c]
sar ecx, 0x10
add ecx, ebx
add esi, ecx
mov ecx, dword [eax - 0x24]
mov ebx, ecx
and ecx, 0xffff
imul ecx, dword [esp + 0x90]
sar ebx, 0x10
imul ebx, dword [esp + 0x90]
sar ecx, 0x10
lea edx, [ebx + ecx]
add edx, esi
cmp dword [esp + 0xcc], 0x10
je 0x43bd00
mov esi, dword [esp + 0x44]
shl edx, 4
mov dword [esp + 0x58], edx
mov ebp, dword [esp + 0xd8]
mov edx, dword [esi + 0x440]
mov ebx, dword [esi + 0x444]
movzx eax, dx
mov ecx, edx
imul eax, dword [esp + 0x38]
sar ecx, 0x10
imul ecx, dword [esp + 0x38]
sar eax, 0x10
add ecx, eax
mov eax, ebx
add ecx, edi
mov edi, dword [esp + 0x44]
sub eax, ecx
mov esi, eax
and eax, 0xffff
imul eax, dword [esp + 0x38]
sar esi, 0x10
imul esi, dword [esp + 0x38]
mov dword [edi + 0x440], ecx
sar eax, 0x10
add eax, esi
add edx, eax
mov eax, ecx
and ecx, 0xffff
imul ecx, dword [esp + 0x94]
sar eax, 0x10
imul eax, dword [esp + 0x94]
sar ecx, 0x10
add eax, ecx
add ebp, eax
cmp dword [esp + 0xc8], 2
jle 0x43b7d9
mov eax, dword [esp + 0xe0]
mov edi, ebx
mov ebx, dword [esp + 0xdc]
add eax, dword [esp + 0x44]
add ebx, 2
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x44]
lea esi, [esi]
mov ecx, dword [eax + 0x448]
mov dword [eax + 0x444], edx
sub ecx, edx
mov esi, ecx
and ecx, 0xffff
imul ecx, dword [esp + 0x38]
sar esi, 0x10
imul esi, dword [esp + 0x38]
sar ecx, 0x10
add ecx, esi
mov esi, edx
and edx, 0xffff
add ecx, edi
movsx edi, word [ebx]
sar esi, 0x10
imul edx, edi
imul esi, edi
mov edi, dword [eax + 0x44c]
sar edx, 0x10
add edx, esi
add ebp, edx
mov edx, edi
sub edx, ecx
mov dword [esp + 0x40], ebp
movsx ebp, word [ebx + 2]
mov esi, edx
and edx, 0xffff
add ebx, 4
imul edx, dword [esp + 0x38]
sar esi, 0x10
imul esi, dword [esp + 0x38]
sar edx, 0x10
add edx, esi
mov esi, ecx
add edx, dword [eax + 0x448]
mov dword [eax + 0x448], ecx
sar esi, 0x10
and ecx, 0xffff
add eax, 8
imul ecx, ebp
imul esi, ebp
mov ebp, dword [esp + 0x40]
sar ecx, 0x10
add ecx, esi
add ebp, ecx
cmp eax, dword [esp + 0x4c]
jne 0x43b730
mov ebx, dword [esp + 0x44]
mov eax, edx
mov ecx, dword [esp + 0xd0]
sar eax, 0x10
imul eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x44]
mov dword [ebx + ecx*4 + 0x440], edx
and edx, 0xffff
imul edx, dword [esp + 0xa0]
sar edx, 0x10
lea edi, [eax + edx]
mov edx, dword [ebx + 0x480]
mov eax, dword [esp + 0x98]
add edi, ebp
mov ebx, dword [esp + 0x98]
mov ecx, edx
and edx, 0xffff
sar ecx, 0x10
imul eax, edx
imul ebx, ecx
imul edx, dword [esp + 0xa8]
imul ecx, dword [esp + 0xa8]
sar eax, 0x10
add eax, ebx
mov ebx, dword [esp + 0xb0]
lea eax, [eax + edi*2]
sar edx, 0x10
mov edi, dword [esp + 0xac]
shl eax, 2
mov dword [esp + 0x3c], eax
mov eax, dword [esi + ebx*4 + 0x3c0]
mov ebx, eax
and eax, 0xffff
imul eax, dword [esp + 0x9c]
sar ebx, 0x10
imul ebx, dword [esp + 0x9c]
sar eax, 0x10
add eax, ebx
add eax, ecx
mov ecx, dword [esp + 0xc4]
add eax, edx
mov edx, dword [esp + 0x3c]
shl eax, 2
mov dword [esp + 0x40], eax
add edx, eax
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0xbc]
sub eax, edx
mov edx, dword [ecx + edi*4]
sar eax, 3
mov ecx, dword [esp + 0x54]
add eax, 1
sar eax, 1
sub edx, eax
mov eax, edx
neg eax
test ecx, ecx
cmovs edx, eax
mov eax, 0xffff8400
cmp edx, 0xffff8400
cmovge eax, edx
mov edx, 0x7800
cmp eax, 0x7800
cmovle edx, eax
mov ecx, edx
sub ecx, dword [esp + 0xa4]
mov eax, ecx
sar eax, 0xa
cmp eax, 0
jle 0x43bde0
mov ebx, dword [esp + 0xa4]
shl eax, 0xa
lea eax, [ebx + eax - 0x50]
lea ebp, [eax + 0x400]
movsx esi, ax
imul esi, dword [esp + 0xb4]
movsx ebx, bp
imul ebx, dword [esp + 0xb4]
mov ecx, edx
mov edi, edx
sub ecx, eax
sub edi, ebp
movsx ecx, cx
movsx edi, di
imul ecx, ecx
imul edi, edi
add ecx, esi
mov esi, dword [esp + 0x44]
add edi, ebx
sar ecx, 0xa
sar edi, 0xa
cmp ecx, edi
mov edx, dword [esi + 0x48c]
jge 0x43bca0
mov ebx, dword [esp + 0x48]
add ecx, edx
add edi, edx
mov edx, dword [esp + 0x54]
mov dword [ebx], eax
shl eax, 4
test edx, edx
mov dword [ebx + 4], ecx
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], ebp
js 0x43bcc8
add eax, dword [esp + 0x64]
shl ebp, 4
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x48]
add edx, eax
mov ecx, edx
mov dword [esi + 0x14], eax
mov edi, esi
sub ecx, dword [esp + 0x3c]
mov dword [esi + 8], edx
mov ebx, ecx
mov dword [esi + 0xc], ecx
sub ebx, dword [esp + 0x40]
mov dword [esi + 0x10], ebx
add ebp, dword [esp + 0x64]
mov edx, dword [esp + 0x58]
add dword [esp + 0x50], 1
mov ebx, dword [esp + 0x5c]
add dword [esp + 0x44], 0x490
add edx, ebp
mov dword [edi + 0x2c], ebp
mov eax, edx
sub eax, dword [esp + 0x3c]
mov dword [edi + 0x20], edx
mov ecx, eax
mov dword [edi + 0x24], eax
sub ecx, dword [esp + 0x40]
cmp dword [esp + 0x50], ebx
mov dword [edi + 0x28], ecx
jne 0x43b4d0
sub dword [esp + 0xb0], 1
mov edi, dword [esp + 0xe4]
mov eax, dword [esp + 0x1e4]
and dword [esp + 0xb0], 0x1f
add edi, dword [esp + 0xb0]
and edi, 0x1f
cmp ebx, 1
jle 0x43c0b6
mov ebp, dword [esp + 0x5c]
lea ebx, [esp + 0x214]
xor esi, esi
mov edx, 1
mov ecx, dword [ebx]
cmp ecx, eax
cmovl esi, edx
cmovl eax, ecx
add edx, 1
add ebx, 0x30
cmp edx, ebp
jne 0x43ba25
imul esi, esi, 0x490
lea edx, [esp + 0x12e0]
lea eax, [edi + 0x70]
add edx, esi
mov ecx, dword [edx + eax*4]
mov dword [esp + 0x3c], edx
mov ebx, dword [esp + 0x138]
lea edx, [esp + eax*4 + 0x12e0]
lea eax, [esp + 0x1e4]
cmp ecx, dword [edx]
je 0x43ba78
add dword [eax], 0x7ffffff
add dword [eax + 0x18], 0x7ffffff
add eax, 0x30
add edx, 0x490
cmp eax, ebx
jne 0x43ba67
cmp dword [esp + 0x5c], 1
mov ecx, dword [esp + 0x1e4]
mov edx, dword [esp + 0x1fc]
jle 0x43c113
lea ebx, [esp + 0x214]
xor ebp, ebp
xor esi, esi
mov eax, 1
mov dword [esp + 0x44], edi
mov edi, dword [ebx]
cmp edi, ecx
cmovg ecx, edi
mov edi, dword [ebx + 0x18]
cmovg ebp, eax
cmp edi, edx
cmovl esi, eax
cmovl edx, edi
add eax, 1
add ebx, 0x30
cmp eax, dword [esp + 0x5c]
jne 0x43bab2
mov edi, dword [esp + 0x44]
cmp ecx, edx
jg 0x43bf5e
mov ecx, dword [esp + 0xac]
cmp dword [esp + 0xe4], ecx
jle 0x43be50
cmp byte [esp + 0x14b], 0
jne 0x43be50
mov ebx, dword [esp + 0x2544]
mov edx, dword [ebx + 0x110c]
mov eax, dword [ebx + 0x1108]
mov ebp, dword [esp + 0x5c]
add edx, 1
add eax, 1
mov dword [ebx + 0x110c], edx
mov dword [ebx + 0x1108], eax
test ebp, ebp
jle 0x43bbcb
mov ebx, dword [esp + 0xb0]
lea esi, [esp + 0x1e0]
mov edi, dword [esp + 0xac]
lea edx, [esp + 0x12e0]
mov dword [esp + 0x68], esi
lea eax, [esp + ebx*4 + 0x15a0]
xor ebx, ebx
lea ebp, [edi + 0x20]
nop
lea ecx, [ebx + ebx*2]
add ebx, 1
shl ecx, 4
add ecx, dword [esp + 0x68]
mov esi, dword [ecx + 0xc]
mov edi, dword [ecx + 0x14]
mov dword [edx + 0x480], esi
mov esi, dword [ecx + 8]
add edi, edi
mov dword [edx + ebp*4], esi
mov dword [eax], esi
mov esi, dword [ecx]
mov dword [eax + 0x80], edi
mov edi, dword [ecx + 0x10]
mov ecx, dword [ecx + 4]
mov dword [eax - 0x80], esi
sar esi, 9
add esi, 1
mov dword [eax + 0x100], edi
sar esi, 1
add esi, dword [edx + 0x484]
mov dword [edx + 0x484], esi
mov dword [eax - 0x100], esi
add eax, 0x490
mov dword [edx + 0x48c], ecx
add edx, 0x490
cmp ebx, dword [esp + 0x5c]
jne 0x43bb60
add dword [esp + 0xac], 1
mov edi, dword [esp + 0x114]
mov esi, dword [esp + 0x118]
mov ebx, dword [esp + 0xb0]
cmp dword [esp + 0xac], edi
mov dword [esp + ebx*4 + 0x160], esi
jne 0x43b313
mov edi, dword [esp + 0x5c]
test edi, edi
jle 0x43bc33
mov ebp, dword [esp + 0x114]
lea eax, [esp + 0x12e0]
xor edx, edx
mov ebx, 0x20
shl ebp, 2
lea esi, [eax + ebp]
mov edi, eax
mov ecx, ebx
rep movsd dword es:[edi], dword [esi]
add edx, 1
add eax, 0x490
cmp edx, dword [esp + 0x5c]
jne 0x43bc1c
mov ebx, dword [esp + 0x2540]
add dword [esp + 0x110], 1
add dword [esp + 0x108], 0xa
add dword [esp + 0xdc], 0x20
mov eax, dword [ebx + 0x1204]
mov ebx, dword [esp + 0x254c]
mov esi, dword [esp + 0x110]
add dword [esp + 0x2550], eax
lea ebx, [ebx + eax*4]
mov dword [esp + 0x254c], ebx
mov ebx, dword [esp + 0x13c]
lea ebx, [ebx + eax*2]
mov dword [esp + 0x13c], ebx
mov ebx, dword [esp + 0x2540]
cmp dword [ebx + 0x11fc], esi
jg 0x43a95f
jmp 0x43c3be
mov ebx, dword [esp + 0x48]
add edi, edx
add ecx, edx
mov edx, eax
mov dword [ebx], ebp
mov dword [ebx + 0x18], eax
mov eax, ebp
mov ebp, edx
mov edx, dword [esp + 0x54]
shl eax, 4
mov dword [ebx + 4], edi
mov dword [ebx + 0x1c], ecx
test edx, edx
jns 0x43b97a
mov edx, dword [esp + 0x64]
shl ebp, 4
mov esi, dword [esp + 0x48]
neg ebp
sub edx, eax
mov eax, dword [esp + 0x58]
mov dword [esi + 0x14], edx
mov edi, esi
add eax, edx
mov ecx, eax
mov dword [esi + 8], eax
sub ecx, dword [esp + 0x3c]
mov ebx, ecx
mov dword [esi + 0xc], ecx
sub ebx, dword [esp + 0x40]
mov dword [esi + 0x10], ebx
jmp 0x43b9a5
mov ecx, dword [esp + 0x60]
mov esi, dword [eax - 0x28]
movsx ebx, word [ecx + 0x14]
mov ecx, esi
and esi, 0xffff
sar ecx, 0x10
imul ecx, ebx
imul ebx, esi
mov esi, dword [eax - 0x2c]
sar ebx, 0x10
add ebx, ecx
mov ecx, dword [esp + 0x60]
add edx, ebx
movsx ebx, word [ecx + 0x16]
mov ecx, esi
and esi, 0xffff
sar ecx, 0x10
imul ecx, ebx
imul ebx, esi
mov esi, dword [eax - 0x30]
sar ebx, 0x10
add ecx, ebx
add edx, ecx
mov ecx, dword [esp + 0x60]
movsx ebx, word [ecx + 0x18]
mov ecx, esi
and esi, 0xffff
sar ecx, 0x10
imul ecx, ebx
imul ebx, esi
mov esi, dword [eax - 0x34]
sar ebx, 0x10
add ecx, ebx
add ecx, edx
mov edx, dword [esp + 0x60]
movsx ebx, word [edx + 0x1a]
mov edx, esi
and esi, 0xffff
sar edx, 0x10
imul edx, ebx
imul ebx, esi
mov esi, dword [eax - 0x38]
sar ebx, 0x10
add edx, ebx
add edx, ecx
mov ecx, dword [esp + 0x60]
movsx ebx, word [ecx + 0x1c]
mov ecx, esi
and esi, 0xffff
sar ecx, 0x10
imul ecx, ebx
imul ebx, esi
sar ebx, 0x10
add ebx, ecx
mov ecx, dword [eax - 0x3c]
add edx, ebx
mov ebx, dword [esp + 0x60]
mov eax, ecx
and ecx, 0xffff
movsx esi, word [ebx + 0x1e]
sar eax, 0x10
imul ecx, esi
imul eax, esi
sar ecx, 0x10
add ecx, eax
add edx, ecx
jmp 0x43b67a
jne 0x43be10
mov edi, edx
mov ebp, dword [esp + 0xec]
sub edi, dword [esp + 0xec]
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xf4]
jmp 0x43b930
cmp eax, 0xffffffff
je 0x43bf32
mov ebx, dword [esp + 0xa4]
shl eax, 0xa
lea eax, [ebx + eax + 0x50]
lea ebp, [eax + 0x400]
mov esi, eax
neg esi
mov ebx, ebp
movsx esi, si
neg ebx
imul esi, dword [esp + 0xb4]
movsx ebx, bx
jmp 0x43b920
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x2550]
mov ecx, dword [esp + 0xac]
mov eax, dword [esi + edi*4 + 0x240]
sub edx, dword [esp + 0xe4]
sar eax, 9
add eax, 1
sar eax, 1
mov byte [edx + ecx], al
mov eax, dword [esi + edi*4 + 0x2c0]
mov esi, dword [esp + edi*4 + 0x160]
mov edx, eax
movzx ebx, ax
movsx ecx, si
sar edx, 0x10
imul edx, ecx
imul ecx, ebx
sar ecx, 0x10
add edx, ecx
mov ecx, esi
sar ecx, 0xf
add ecx, 1
sar ecx, 1
imul eax, ecx
add eax, edx
mov edx, 0x7fff
sar eax, 7
add eax, 1
sar eax, 1
cmp eax, 0x7fff
jg 0x43becf
mov edx, 0xffff8000
cmp eax, 0xffff8000
cmovge edx, eax
mov ebx, dword [esp + 0xac]
mov esi, dword [esp + 0x140]
mov word [esi + ebx*2], dx
mov ebx, dword [esp + 0x2544]
mov esi, dword [esp + 0x3c]
mov edx, dword [ebx + 0x110c]
mov ecx, dword [esi + edi*4 + 0x3c0]
mov eax, edx
sub eax, dword [esp + 0xe4]
mov dword [ebx + eax*4 + 0x500], ecx
mov eax, dword [ebx + 0x1108]
mov ebx, dword [esi + edi*4 + 0x340]
mov ecx, eax
sub ecx, dword [esp + 0xe4]
mov dword [esp + ecx*4 + 0x8e0], ebx
mov ebx, dword [esp + 0x2544]
jmp 0x43bb14
mov edi, ecx
mov ecx, edx
mov ebp, dword [esp + 0xa4]
sub ecx, dword [esp + 0x134]
mov eax, dword [esp + 0x134]
mov ebx, dword [esp + 0xf4]
mov esi, dword [esp + 0x144]
jmp 0x43b930
mov edx, dword [esp + 0xac]
imul eax, ebp, 0x124
lea ebx, [esi + esi*2]
shl ebx, 4
add eax, dword [esp + 0xac]
neg edx
lea ecx, [edx*4 + 0x490]
imul edx, esi, 0x124
mov dword [esp + 8], ecx
lea eax, [esp + eax*4 + 0x12e0]
add edx, dword [esp + 0xac]
mov dword [esp], eax
lea edx, [esp + edx*4 + 0x12e0]
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
lea edx, [esp + ebx + 0x1f8]
mov ebx, dword [esp + ebx + 0x1f8]
lea ecx, [ebp + ebp*2]
shl ecx, 4
lea eax, [esp + ecx + 0x1e0]
mov dword [esp + ecx + 0x1e0], ebx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x10], ecx
mov edx, dword [edx + 0x14]
mov dword [eax + 0x14], edx
jmp 0x43badf
mov edi, dword [esp + 0xf0]
mov ebx, dword [esp + 0x108]
mov esi, dword [esp + 0x108]
mov ecx, dword [edi]
movsx edx, word [ebx]
mov ebx, dword [edi - 4]
mov eax, ecx
and ecx, 0xffff
sar eax, 0x10
imul eax, edx
imul edx, ecx
sar edx, 0x10
lea ecx, [eax + edx + 2]
movsx edx, word [esi + 2]
mov eax, ebx
sar eax, 0x10
and ebx, 0xffff
imul eax, edx
imul edx, ebx
sar edx, 0x10
add eax, edx
movsx edx, word [esi + 4]
lea ebx, [ecx + eax]
mov ecx, dword [edi - 8]
mov eax, ecx
and ecx, 0xffff
sar eax, 0x10
imul eax, edx
imul edx, ecx
mov ecx, dword [edi - 0xc]
sar edx, 0x10
add eax, edx
movsx edx, word [esi + 6]
add ebx, eax
mov eax, ecx
and ecx, 0xffff
sar eax, 0x10
imul eax, edx
imul edx, ecx
mov ecx, dword [edi - 0x10]
sar edx, 0x10
add eax, edx
movsx edx, word [esi + 8]
add ebx, eax
mov eax, ecx
and ecx, 0xffff
sar eax, 0x10
imul eax, edx
imul edx, ecx
sar edx, 0x10
add eax, edx
add eax, ebx
add eax, eax
add edi, 4
mov dword [esp + 0x64], eax
mov dword [esp + 0xf0], edi
jmp 0x43b329
lea eax, [edi + 0x70]
lea esi, [esp + 0x12e0]
mov ecx, dword [esp + eax*4 + 0x12e0]
mov dword [esp + 0x3c], esi
jmp 0x43ba52
sub dword [esp + 0xb0], 1
xor ebp, ebp
xor esi, esi
mov edi, dword [esp + 0xe4]
lea ebx, [esp + 0x12e0]
mov ecx, dword [esp + 0x1e4]
mov edx, dword [esp + 0x1fc]
mov dword [esp + 0x3c], ebx
and dword [esp + 0xb0], 0x1f
add edi, dword [esp + 0xb0]
and edi, 0x1f
jmp 0x43bad7
xor ebp, ebp
xor esi, esi
jmp 0x43bad7
mov eax, edx
mov ebx, 0xffffffff
mov ecx, 0xf
shr eax, 0x10
test ax, ax
je 0x43aa57
movsx ecx, ax
test ch, 0xff
je 0x43c238
and ch, 0xf0
je 0x43c1fe
sar ax, 0xc
mov esi, 0xf
mov edi, 0xffffffff
mov dword [esp + 0x54], 0xe
mov ebx, 0xc
mov ecx, 2
mov dword [esp + 0x48], 0
mov dword [esp + 0x3c], 0xd
mov dword [esp + 0x38], 1
jmp 0x43c1cd
movsx ecx, dx
test ch, 0xff
je 0x43cbf0
and ch, 0xf0
je 0x43c281
sar ax, 0xc
mov esi, 0xffffffff
mov edi, 0xf
mov dword [esp + 0x54], 0xfffffffe
mov bl, 0xfc
mov ecx, 0x12
mov dword [esp + 0x48], 0x10
mov dword [esp + 0x3c], 0xfffffffd
mov dword [esp + 0x38], 0x11
test al, 0xc
je 0x43c1eb
test al, 8
je 0x43c1de
mov ebx, esi
mov ecx, edi
jmp 0x43aa57
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x48]
jmp 0x43aa57
and ax, 0xe
cmovne ebx, dword [esp + 0x3c]
cmovne ecx, dword [esp + 0x38]
jmp 0x43aa57
sar ax, 8
mov esi, 0xb
mov edi, 3
mov dword [esp + 0x54], 0xa
mov ebx, 8
mov ecx, 6
mov dword [esp + 0x48], 4
mov dword [esp + 0x3c], 9
mov dword [esp + 0x38], 5
jmp 0x43c1cd
and ecx, 0xfff0
je 0x43cc49
sar ax, 4
mov esi, 7
mov edi, 7
mov dword [esp + 0x54], 6
mov ebx, 4
mov ecx, 0xa
mov dword [esp + 0x48], 8
mov dword [esp + 0x3c], 5
mov dword [esp + 0x38], 9
jmp 0x43c1cd
sar ax, 8
mov esi, 0xfffffffb
mov edi, 0x13
mov dword [esp + 0x54], 0xfffffffa
mov ebx, 0xfffffff8
mov ecx, 0x16
mov dword [esp + 0x48], 0x14
mov dword [esp + 0x3c], 0xfffffff9
mov dword [esp + 0x38], 0x15
jmp 0x43c1cd
mov esi, dword [esp + 0x2540]
mov ecx, dword [esi + 0x11fc]
jmp 0x43a81d
mov edx, dword [edi + 0x11fc]
test edx, edx
jle 0x43c38f
mov eax, dword [esp + 0x2570]
lea ecx, [eax + edx*4]
mov edx, dword [esp + 0xe4]
mov esi, dword [eax]
sub esi, 3
cmp edx, esi
cmovg edx, esi
add eax, 4
cmp eax, ecx
jne 0x43c2ef
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0x2548]
mov ecx, dword [esp + 0x2544]
mov esi, dword [esp + 0x2544]
cmp byte [edx + 0x1f], 4
lea ecx, [ecx + ebx*2]
mov dword [esi + 0x110c], ebx
mov dword [esp + 0x13c], ecx
setne al
mov dword [esi + 0x1108], ebx
movzx edx, al
jmp 0x43a85a
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x2540]
jmp 0x43a797
neg ecx
mov eax, 0x80000000
mov edx, 0x7fffffff
sar eax, cl
sar edx, cl
cmp eax, edx
jle 0x43c381
cmp dword [esp + 0x38], eax
jg 0x43c376
cmp dword [esp + 0x38], edx
mov eax, edx
cmovge eax, dword [esp + 0x38]
shl eax, cl
mov dword [esp + 0x38], eax
jmp 0x43abf1
cmp dword [esp + 0x38], edx
jle 0x43c718
mov eax, edx
jmp 0x43c376
mov edi, dword [esp + 0x2544]
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0x2544]
lea edi, [edi + ebx*2]
mov dword [esp + 0x13c], edi
mov dword [eax + 0x110c], ebx
mov dword [eax + 0x1108], ebx
mov ebx, dword [esp + 0x2540]
xor ecx, ecx
mov edx, dword [esp + 0x176c]
mov edi, dword [ebx + 0x122c]
cmp edi, 1
jle 0x43c3fc
lea ebx, [esp + 0x1bfc]
mov eax, 1
mov esi, dword [ebx]
cmp esi, edx
cmovl ecx, eax
cmovl edx, esi
add eax, 1
add ebx, 0x490
cmp eax, edi
jne 0x43c3e5
imul eax, ecx, 0x490
lea esi, [esp + 0x12e0]
mov ebx, dword [esp + 0x2548]
add eax, esi
mov esi, dword [esp + 0xe4]
mov edx, dword [eax + 0x488]
mov byte [ebx + 0x22], dl
mov ebx, dword [esp + 0x2540]
mov edx, dword [esp + 0xe4]
mov ecx, dword [ebx + 0x11fc]
mov ebx, dword [esp + 0x256c]
add edx, dword [esp + 0xb0]
mov ecx, dword [ebx + ecx*4 - 4]
mov ebx, ecx
sar ebx, 6
test esi, esi
jle 0x43c53a
sar ecx, 0x15
movsx ebx, bx
xor edi, edi
lea ebp, [ecx + 1]
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x13c]
sar ebp, 1
neg ecx
lea ecx, [ebx + ecx*2]
mov ebx, dword [esp + 0x2550]
mov dword [esp + 0x3c], ecx
sub ebx, dword [esp + 0xe4]
mov dword [esp + 0x124], ebx
sub edx, 1
mov esi, dword [esp + 0x124]
and edx, 0x1f
mov ecx, dword [eax + edx*4 + 0x240]
mov ebx, dword [eax + edx*4 + 0x2c0]
sar ecx, 9
add ecx, 1
sar ecx, 1
mov byte [esi + edi], cl
movzx ecx, bx
mov esi, ebx
sar esi, 0x10
imul ebx, ebp
imul ecx, dword [esp + 0x38]
imul esi, dword [esp + 0x38]
sar ecx, 0x10
add ecx, esi
add ecx, ebx
mov ebx, 0x7fff
sar ecx, 7
add ecx, 1
sar ecx, 1
cmp ecx, 0x7fff
jg 0x43c4f7
cmp ecx, 0xffff8000
mov ebx, 0xffff8000
cmovge ebx, ecx
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2544]
mov word [ecx + edi*2], bx
mov ecx, edi
mov ebx, dword [esp + 0x2544]
sub ecx, dword [esp + 0xe4]
add edi, 1
add ecx, dword [ebx + 0x110c]
mov ebx, dword [eax + edx*4 + 0x3c0]
cmp edi, dword [esp + 0xe4]
mov dword [esi + ecx*4 + 0x500], ebx
jne 0x43c492
mov ebx, dword [esp + 0x2540]
mov edi, dword [esp + 0x154]
mov edx, dword [ebx + 0x1204]
test edi, 1
lea esi, [eax + edx*4]
mov edx, pe_nt_image_headers32
je 0x43c57e
mov ebx, dword [esp + 0x2544]
movzx edx, byte [esi]
add esi, 1
mov edi, ebx
mov byte [ebx + 0xf00], dl
add edi, 0xf01
mov edx, 0x7f
test edi, 2
je 0x43c595
movzx ecx, word [esi]
sub edx, 2
add esi, 2
mov word [edi], cx
add edi, 2
mov ecx, edx
shr ecx, 2
test dl, 2
rep movsd dword es:[edi], dword [esi]
je 0x43c5ac
movzx ecx, word [esi]
mov word [edi], cx
mov ecx, 2
and edx, 1
je 0x43c5b8
movzx edx, byte [esi + ecx]
mov byte [edi + ecx], dl
mov ecx, dword [eax + 0x440]
mov ebx, dword [esp + 0x2544]
mov edx, dword [eax + 0x47c]
mov dword [ebx + 0x10c0], ecx
mov ebx, dword [esp + 0x10c]
mov ecx, dword [eax + 0x444]
mov dword [ebx + 4], ecx
mov ecx, dword [eax + 0x448]
mov dword [ebx + 8], ecx
mov ecx, dword [eax + 0x44c]
mov dword [ebx + 0xc], ecx
mov ecx, dword [eax + 0x450]
mov dword [ebx + 0x10], ecx
mov ecx, dword [eax + 0x454]
mov dword [ebx + 0x14], ecx
mov ecx, dword [eax + 0x458]
mov dword [ebx + 0x18], ecx
mov ecx, dword [eax + 0x45c]
mov dword [ebx + 0x1c], ecx
mov ecx, dword [eax + 0x460]
mov dword [ebx + 0x20], ecx
mov ecx, dword [eax + 0x464]
mov dword [ebx + 0x24], ecx
mov ecx, dword [eax + 0x468]
mov dword [ebx + 0x28], ecx
mov ecx, dword [eax + 0x46c]
mov dword [ebx + 0x2c], ecx
mov ecx, dword [eax + 0x470]
mov dword [ebx + 0x30], ecx
mov ecx, dword [eax + 0x474]
mov dword [ebx + 0x34], ecx
mov ecx, dword [eax + 0x478]
mov dword [ebx + 0x38], ecx
mov dword [ebx + 0x3c], edx
mov eax, dword [eax + 0x480]
mov ebx, dword [esp + 0x2544]
mov dword [ebx + 0x1100], eax
mov ebx, dword [esp + 0x2540]
mov eax, dword [ebx + 0x11fc]
mov ebx, dword [esp + 0x2570]
mov eax, dword [ebx + eax*4 - 4]
mov ebx, dword [esp + 0x2544]
mov dword [ebx + 0x1104], eax
mov ebx, dword [esp + 0x2540]
mov ebx, dword [ebx + 0x1208]
mov eax, ebx
mov ebx, dword [esp + 0x2540]
add eax, eax
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x1200]
mov ebx, dword [esp + 0x2544]
lea eax, [ebx + eax*2]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memmove
mov ebx, dword [esp + 0x2540]
mov ebx, dword [ebx + 0x1208]
mov eax, ebx
mov ebx, dword [esp + 0x2540]
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x1200]
mov ebx, dword [esp + 0x2544]
lea eax, [ebx + eax*4 + 0x500]
mov dword [esp + 4], eax
mov eax, ebx
add eax, 0x500
mov dword [esp], eax
call sub.msvcrt.dll_memmove
add esp, 0x252c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [esp + 0x38], eax
cmovge eax, dword [esp + 0x38]
jmp 0x43c376
movsx edx, ax
test dh, 0xff
je 0x43c7d0
and dh, 0xf0
je 0x43c7b0
sar ax, 0xc
mov dword [esp + 0x3c], 0xf
mov cl, 0x12
mov edx, 0x10
mov dword [esp + 0x38], 0x11
test al, 0xc
je 0x43c7a4
mov ecx, dword [esp + 0x3c]
test al, 8
cmove ecx, edx
jmp 0x43ab51
shr eax, 0x10
mov ecx, 0xf
test ax, ax
je 0x43ab51
movsx edx, ax
test dh, 0xff
je 0x43c887
and dh, 0xf0
je 0x43c864
sar ax, 0xc
mov dword [esp + 0x3c], 0xffffffff
xor edx, edx
mov dword [esp + 0x38], 1
mov cl, 2
jmp 0x43c752
test al, 0xe
cmovne ecx, dword [esp + 0x38]
jmp 0x43ab51
sar ax, 8
mov edx, 0x14
mov ecx, 0x16
mov dword [esp + 0x3c], 0x13
mov dword [esp + 0x38], 0x15
jmp 0x43c752
and edx, 0xfff0
je 0x43c91b
sar ax, 4
mov edx, 0x18
mov ecx, 0x1a
mov dword [esp + 0x3c], 0x17
mov dword [esp + 0x38], 0x19
jmp 0x43c752
movsx edx, ax
test dh, 0xff
je 0x43c9b9
and dh, 0xf0
je 0x43c979
sar ax, 0xc
mov edx, 0x2c
mov bl, 0x2f
mov dword [esp + 0x64], 0xf
mov cl, 0x12
mov dword [esp + 0x58], 0x2d
mov dword [esp + 0x54], 0x10
mov dword [esp + 0x48], 0x2e
mov dword [esp + 0x38], 0x11
test al, 0xc
je 0x43c966
test al, 8
je 0x43c959
mov ebx, edx
mov ecx, dword [esp + 0x64]
jmp 0x43ab23
sar ax, 8
mov edx, 4
mov ecx, 6
mov dword [esp + 0x3c], 3
mov dword [esp + 0x38], 5
jmp 0x43c752
and edx, 0xfff0
je 0x43c93a
sar ax, 4
mov edx, 8
mov ecx, 0xa
mov dword [esp + 0x3c], 7
mov dword [esp + 0x38], 9
jmp 0x43c752
shr eax, 0x10
mov ebx, 0x2c
mov ecx, 0xf
test ax, ax
je 0x43ab23
movsx edx, ax
test dh, 0xff
je 0x43ca45
and dh, 0xf0
je 0x43ca05
sar ax, 0xc
mov edx, 0x1c
mov bl, 0x1f
mov dword [esp + 0x64], 0xffffffff
mov cl, 2
mov dword [esp + 0x58], 0x1d
mov dword [esp + 0x54], 0
mov dword [esp + 0x48], 0x1e
mov dword [esp + 0x38], 1
jmp 0x43c849
mov dword [esp + 0x3c], 0x1b
mov edx, 0x1c
mov ecx, 0x1e
mov dword [esp + 0x38], 0x1d
jmp 0x43c752
mov dword [esp + 0x3c], 0xb
mov edx, 0xc
mov ecx, 0xe
mov dword [esp + 0x38], 0xd
jmp 0x43c752
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
jmp 0x43ab23
and ax, 0xe
cmovne ebx, dword [esp + 0x48]
cmovne ecx, dword [esp + 0x38]
jmp 0x43ab23
sar ax, 8
mov edx, 0x30
mov ebx, 0x33
mov dword [esp + 0x64], 0x13
mov ecx, 0x16
mov dword [esp + 0x58], 0x31
mov dword [esp + 0x54], 0x14
mov dword [esp + 0x48], 0x32
mov dword [esp + 0x38], 0x15
jmp 0x43c849
and edx, 0xfff0
je 0x43ca8d
sar ax, 4
mov edx, 0x34
mov ebx, 0x37
mov dword [esp + 0x64], 0x17
mov ecx, 0x1a
mov dword [esp + 0x58], 0x35
mov dword [esp + 0x54], 0x18
mov dword [esp + 0x48], 0x36
mov dword [esp + 0x38], 0x19
jmp 0x43c849
sar ax, 8
mov edx, 0x20
mov ebx, 0x23
mov dword [esp + 0x64], 3
mov ecx, 6
mov dword [esp + 0x58], 0x21
mov dword [esp + 0x54], 4
mov dword [esp + 0x48], 0x22
mov dword [esp + 0x38], 5
jmp 0x43c849
and edx, 0xfff0
je 0x43cac9
sar ax, 4
mov edx, 0x24
mov ebx, 0x27
mov dword [esp + 0x64], 7
mov ecx, 0xa
mov dword [esp + 0x58], 0x25
mov dword [esp + 0x54], 8
mov dword [esp + 0x48], 0x26
mov dword [esp + 0x38], 9
jmp 0x43c849
mov edx, 0x38
mov dword [esp + 0x64], 0x1b
mov ebx, 0x3b
mov dword [esp + 0x58], 0x39
mov ecx, 0x1e
mov dword [esp + 0x54], 0x1c
mov dword [esp + 0x48], 0x3a
mov dword [esp + 0x38], 0x1d
jmp 0x43c849
mov edx, 0x28
mov dword [esp + 0x64], 0xb
mov ebx, 0x2b
mov dword [esp + 0x58], 0x29
mov ecx, 0xe
mov dword [esp + 0x54], 0xc
mov dword [esp + 0x48], 0x2a
mov dword [esp + 0x38], 0xd
jmp 0x43c849
xor edi, edi
xor esi, esi
jmp 0x43aad9
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x43ad75
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x44]
sub edx, dword [esp + 0x4c]
sub ecx, dword [esp + 0xe4]
lea eax, [edx - 2]
cmp eax, ecx
jge 0x43ad75
mov ebp, dword [esp + 0x38]
lea ebx, [esp + edx*4 + 0x8e0]
movzx esi, word [esp + 0x38]
lea edi, [esp + ecx*4 + 0x8e8]
sar ebp, 0x10
mov edx, dword [ebx - 8]
movsx eax, dx
mov ecx, eax
imul eax, esi
imul ecx, ebp
sar eax, 0x10
add ecx, eax
mov eax, edx
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [esp + 0x38]
add eax, ecx
mov dword [ebx - 8], eax
add ebx, 4
cmp ebx, edi
jne 0x43cb52
jmp 0x43ad75
mov ecx, ebx
mov edx, 0x7fffffff
mov eax, 0x80000000
neg ecx
sar edx, cl
sar eax, cl
cmp esi, edx
jle 0x43cd5b
mov eax, edx
mov esi, eax
shl esi, cl
mov edi, esi
sar edi, 7
add edi, 1
sar edi, 1
jmp 0x43aad9
mov dword [esp + 0xf8], ebx
mov ebx, dword [esp + 0x14c]
test dword [esp + 0x110], ebx
je 0x43cc7f
mov ebx, dword [esp + 0x2544]
mov ebx, dword [ebx + 0x1108]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0xf8]
mov dword [esp + 0x4c], ebx
jmp 0x43a9ed
and ecx, 0xfff0
je 0x43cd65
sar ax, 4
mov esi, 0xfffffff7
mov edi, 0x17
mov dword [esp + 0x54], 0xfffffff6
mov ebx, 0xfffffff4
mov ecx, 0x1a
mov dword [esp + 0x48], 0x18
mov dword [esp + 0x3c], 0xfffffff5
mov dword [esp + 0x38], 0x19
jmp 0x43c1cd
mov dword [esp + 0xb0], 0
jmp 0x43c3be
mov esi, 3
mov edi, 0xb
xor ebx, ebx
mov dword [esp + 0x54], 2
mov ecx, 0xe
mov dword [esp + 0x48], 0xc
mov dword [esp + 0x3c], 1
mov dword [esp + 0x38], 0xd
jmp 0x43c1cd
cmp dword [esp + 0x110], 2
je 0x43cd9e
mov ebx, dword [esp + 0x12c]
add ebx, 1
mov esi, dword [esp + 0x2540]
mov edi, dword [esp + 0x60]
mov ecx, dword [esi + 0x1208]
mov edx, dword [esi + 0x1238]
mov dword [esp + 8], edi
mov eax, ecx
sub eax, dword [esp + 0xf8]
mov dword [esp + 0x10], edx
sub eax, edx
mov edx, dword [esp + 0x110]
sub eax, 2
sub ecx, eax
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x2544]
imul edx, dword [esi + 0x1204]
add edx, eax
lea edx, [ecx + edx*2]
lea eax, [esp + eax*2 + 0x3e0]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0043f8c0
mov esi, dword [esi + 0x1208]
mov dword [esp + 0x50], 1
mov edi, dword [esp + 0x2544]
mov ecx, dword [esp + 0x2570]
mov eax, dword [esp + 0x2548]
mov edx, dword [esp + 0x110]
mov dword [esp + 0x44], esi
mov dword [edi + 0x1108], esi
mov dword [edi + 0x1118], 1
movzx eax, byte [eax + 0x1d]
mov edx, dword [ecx + edx*4]
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x12c], ebx
mov byte [esp + 0x6c], al
mov dword [esp + 0x4c], edx
mov dword [esp + 0x68], ecx
jmp 0x43aa0a
cmp esi, eax
cmovge eax, esi
jmp 0x43cba1
mov esi, 0xfffffff3
mov edi, 0x1b
mov ebx, 0xfffffff0
mov dword [esp + 0x54], 0xfffffff2
mov ecx, 0x1e
mov dword [esp + 0x48], 0x1c
mov dword [esp + 0x3c], 0xfffffff1
mov dword [esp + 0x38], 0x1d
jmp 0x43c1cd
mov edi, dword [esp + 0x2540]
mov ebx, dword [esp + 0x176c]
mov esi, dword [edi + 0x122c]
cmp esi, 1
jle 0x43cdde
lea edx, [esp + 0x1bfc]
xor eax, eax
mov edi, 1
mov ecx, dword [edx]
cmp ecx, ebx
cmovl eax, edi
cmovl ebx, ecx
add edi, 1
add edx, 0x490
cmp edi, esi
jne 0x43cdc5
jmp 0x43cde4
xor eax, eax
test esi, esi
jle 0x43ce04
lea edx, [esp + 0x176c]
xor ecx, ecx
cmp ecx, eax
je 0x43cdf7
add dword [edx], 0x7ffffff
add ecx, 1
add edx, 0x490
cmp ecx, esi
jne 0x43cded
imul eax, eax, 0x490
lea esi, [esp + 0x12e0]
mov edi, dword [esp + 0xe4]
add esi, eax
mov eax, dword [esp + 0xe4]
add edi, dword [esp + 0xb0]
test eax, eax
jle 0x43cf0b
mov ebx, dword [esp + 0x13c]
xor ebp, ebp
add ebx, dword [esp + 0x158]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x2550]
sub ebx, dword [esp + 0xe4]
mov dword [esp + 0x44], ebx
sub edi, 1
mov edx, dword [esp + 0x44]
and edi, 0x1f
mov ebx, dword [esp + 0x256c]
mov eax, dword [esi + edi*4 + 0x240]
sar eax, 9
add eax, 1
sar eax, 1
mov byte [edx + ebp], al
mov eax, dword [esi + edi*4 + 0x2c0]
mov ebx, dword [ebx + 4]
mov edx, eax
movsx ecx, bx
mov dword [esp + 0x34], ebx
sar edx, 0x10
movzx ebx, ax
imul edx, ecx
imul ecx, ebx
sar ecx, 0x10
add edx, ecx
mov ecx, dword [esp + 0x34]
sar ecx, 0xf
add ecx, 1
sar ecx, 1
imul eax, ecx
add eax, edx
mov edx, 0x7fff
sar eax, 0xd
add eax, 1
sar eax, 1
cmp eax, 0x7fff
jg 0x43cecf
cmp eax, 0xffff8000
mov edx, 0xffff8000
cmovge edx, eax
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2544]
mov word [eax + ebp*2], dx
mov eax, ebp
add ebp, 1
sub eax, dword [esp + 0xe4]
mov edx, dword [esi + edi*4 + 0x3c0]
add eax, dword [ebx + 0x110c]
cmp ebp, dword [esp + 0xe4]
mov dword [ebx + eax*4 + 0x500], edx
jne 0x43ce56
mov dword [esp + 0x12c], 0
mov ebx, 1
jmp 0x43cc97