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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0x20], esi
mov edi, dword [esi + 0x8618]
test edi, edi
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x8614]
sete bl
xor edx, edx
mov dword [ebp - 0x38], eax
cmp edi, dword [esi + 0x861c]
mov eax, dword [esi + 0x8550]
mov edi, dword [esi + 0x8614]
sete dl
mov dword [ebp - 0x48], eax
xor eax, eax
test ecx, ecx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], edx
sete al
xor ecx, ecx
cmp edi, dword [esi + 0x8620]
mov edi, dword [esi + 0x8618]
sete cl
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], ecx
test ebx, ebx
jne 0x432744
mov dword [ebp - 0x28], 0
test edx, edx
je 0x43274b
mov dword [ebp - 0x28], 1
test eax, eax
jne 0x432756
mov dword [ebp - 0x34], eax
test ecx, ecx
je 0x43275d
mov dword [ebp - 0x34], 1
mov ecx, dword [ebp - 4]
test ecx, ecx
jne 0x43276b
mov dword [ebp - 0x3c], ecx
test eax, eax
je 0x432772
mov dword [ebp - 0x3c], 1
xor eax, eax
cmp edi, 1
sete al
xor ebx, ebx
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x861c]
dec eax
cmp edi, eax
mov eax, dword [ebp - 0x48]
sete bl
mov dword [ebp - 0x30], ebx
cmp eax, 1
je 0x4327a6
cmp eax, 2
je 0x4327a6
mov eax, dword [esi + 0x856c]
mov dword [ebp - 0x44], eax
jmp 0x4327ad
mov dword [ebp - 0x44], 1
cmp dword [esi + 0x8094], 0
je 0x4328b0
test edi, edi
jne 0x4327ca
mov dword [esi + 0x8638], edi
mov dword [esi + 0x8634], edi
mov ebx, dword [esi + 0x8634]
mov dword [esi + 0x8644], 0
mov dword [esi + 0x8640], 0
test ebx, ebx
je 0x432806
cmp ebx, dword [esi + 0x4088]
ja 0x432806
lea eax, [edi - 1]
cmp eax, dword [esi + ebx*4 + 0x408c]
jne 0x432806
mov dword [esi + 0x8644], 1
mov eax, dword [esi + 0x4088]
cmp ebx, eax
jae 0x432834
cmp edi, dword [esi + ebx*4 + 0x4090]
jne 0x432834
lea eax, [ebx + 1]
mov dword [esi + 0x8638], 1
mov dword [esi + 0x8634], eax
mov eax, dword [esi + 0x4088]
jmp 0x43283e
mov dword [esi + 0x8638], 0
mov ebx, dword [esi + 0x8634]
cmp ebx, eax
jae 0x43285e
lea eax, [edi + 1]
cmp eax, dword [esi + ebx*4 + 0x4090]
jne 0x43285e
mov dword [esi + 0x8640], 1
mov ebx, dword [esi + 0x8614]
test ebx, ebx
jne 0x432870
mov dword [esi + 0x8630], ebx
jmp 0x4328d4
mov eax, dword [esi + 0x862c]
cmp eax, ebx
je 0x4328de
mov eax, dword [esi + 0x8630]
cmp eax, dword [esi + 0x84]
jae 0x4328a4
cmp ebx, dword [esi + eax*4 + 0x8c]
jne 0x4328a4
inc eax
mov dword [esi + 0x863c], 1
mov dword [esi + 0x8630], eax
jmp 0x4328de
mov eax, dword [esi + 0x862c]
cmp eax, ebx
je 0x4328de
jmp 0x4328d4
mov ebx, dword [esi + 0x8614]
mov dword [esi + 0x8638], 0
mov dword [esi + 0x8640], 0
mov dword [esi + 0x8644], 0
mov dword [esi + 0x863c], 0
xor eax, eax
mov dword [esi + 0x8628], edi
mov dword [esi + 0x862c], ebx
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x44], eax
jle 0x43379f
jmp 0x432903
mov edx, dword [ebp - 8]
cmp dword [ebp - 0x38], 0
mov edi, dword [esi + eax*4 + 0x875c]
mov ebx, dword [esi + eax*4 + 0x879c]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x14], ebx
je 0x432d6d
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x432930
cmp dword [esi + 0x863c], eax
je 0x432991
test ecx, ecx
jne 0x43293c
cmp dword [esi + 0x8638], ecx
je 0x432957
lea eax, [ebx + 0xc]
mov ecx, ebx
push eax
lea eax, [ebx + 8]
push eax
lea edx, [ebx + 4]
call fcn.00431cc0
mov eax, dword [ebp - 0xc]
add esp, 8
mov edx, dword [ebp - 8]
test eax, eax
jne 0x432963
cmp dword [esi + 0x863c], eax
je 0x432991
test edx, edx
jne 0x43296f
cmp dword [esi + 0x8638], edx
je 0x432991
lea eax, [ebx - 0xe8]
push eax
lea eax, [ebx - 0xe4]
push eax
lea edx, [ebx - 0xf0]
lea ecx, [ebx - 0xec]
call fcn.00431cc0
add esp, 8
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x4329a0
cmp dword [esi + 0x863c], eax
je 0x432a08
cmp dword [ebp - 4], 0
jne 0x4329af
cmp dword [esi + 0x8638], 0
je 0x4329d4
lea eax, [edi + 0xe4]
push eax
lea eax, [edi + 0xe0]
push eax
lea edx, [edi + 0xec]
lea ecx, [edi + 0xe8]
call fcn.00431cc0
mov eax, dword [ebp - 0x10]
add esp, 8
test eax, eax
jne 0x4329e0
cmp dword [esi + 0x863c], eax
je 0x432a08
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x4329ef
cmp dword [esi + 0x8638], ecx
je 0x432a13
lea eax, [edi - 0x10]
push eax
lea eax, [edi - 0xc]
push eax
lea edx, [edi - 8]
lea ecx, [edi - 4]
call fcn.00431cc0
mov eax, dword [ebp - 0x10]
add esp, 8
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x432c36
test eax, eax
jne 0x432c47
cmp dword [ebp - 0xc], eax
jne 0x432a86
cmp dword [esi + 0x863c], eax
jne 0x432a86
cmp dword [ebp - 4], eax
jne 0x432a3a
cmp dword [esi + 0x8638], eax
jne 0x432a3a
lea ecx, [eax - 0x40]
jmp 0x432a3c
xor ecx, ecx
lea eax, [ebx + ecx*4]
mov dword [ebp - 0x18], eax
lea eax, [edi + 0xc0]
mov ebx, dword [ebp - 0x18]
lea eax, [eax + ecx*4]
mov dword [ebp - 0x4c], eax
mov eax, 0xbf
mov edi, dword [ebp - 0x4c]
sub eax, ecx
shr eax, 6
inc eax
mov dword [ebp - 0x24], eax
mov esi, eax
push 0
mov edx, ebx
mov ecx, edi
call fcn.00431db0
add esp, 4
add ebx, 0x100
add edi, 0x100
dec esi
jne 0x432a64
mov ebx, dword [ebp - 0x14]
jmp 0x432aef
cmp dword [ebp - 4], 0
jne 0x432a9c
cmp dword [esi + 0x8638], 0
jne 0x432a9c
mov ecx, 0xffffffc0
jmp 0x432a9e
xor ecx, ecx
mov eax, 0xbf
lea edi, [ecx + 0x40]
sub eax, ecx
lea edi, [ebx + edi*4]
shr eax, 6
inc eax
mov dword [ebp - 0x4c], eax
mov esi, eax
lea eax, [edi + 4]
push eax
push edi
lea edx, [edi - 0xf0]
lea ecx, [edi - 0xec]
call fcn.00431cc0
lea eax, [edi + 0xc]
push eax
lea eax, [edi + 8]
push eax
lea edx, [edi - 0xe8]
lea ecx, [edi - 0xe4]
call fcn.00431cc0
add esp, 0x10
add edi, 0x100
dec esi
jne 0x432ab4
cmp dword [ebp - 4], 0
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
jne 0x432b26
cmp dword [esi + 0x8638], 0
jne 0x432b26
lea ecx, [ebx - 0x100]
mov esi, 3
nop
lea edi, [ecx + 0x40]
push 0
mov edx, edi
call fcn.00431db0
add esp, 4
mov ecx, edi
dec esi
jne 0x432b10
jmp 0x432b9c
cmp dword [ebp - 0xc], 0
jne 0x432b67
cmp dword [esi + 0x863c], 0
jne 0x432b67
lea eax, [ebx + 8]
push eax
push ebx
lea edx, [edi + 0xe0]
lea ecx, [edi + 0xe8]
call fcn.00431cc0
lea eax, [ebx + 0xc]
push eax
lea eax, [ebx + 4]
push eax
lea edx, [edi + 0xe4]
lea ecx, [edi + 0xec]
call fcn.00431cc0
add esp, 0x10
lea edi, [ebx + 0x40]
mov esi, 3
nop
lea eax, [edi + 8]
push eax
push edi
lea edx, [edi - 0x20]
lea ecx, [edi - 0x18]
call fcn.00431cc0
lea eax, [edi + 0xc]
push eax
lea eax, [edi + 4]
push eax
lea edx, [edi - 0x1c]
lea ecx, [edi - 0x14]
call fcn.00431cc0
add esp, 0x10
add edi, 0x40
dec esi
jne 0x432b70
mov esi, dword [ebp - 0x20]
lea edx, [ebx + 0x40]
push 0
mov ecx, ebx
call fcn.00431db0
push 0
lea edx, [ebx + 0x80]
lea ecx, [ebx + 0x40]
call fcn.00431db0
lea ecx, [ebx + 0x80]
push 0
lea edx, [ecx + 0x40]
call fcn.00431db0
lea ecx, [ebx + 0x100]
push 0
lea edx, [ecx + 0x40]
call fcn.00431db0
lea ecx, [ebx + 0x140]
push 0
lea edx, [ecx + 0x40]
call fcn.00431db0
lea ecx, [ebx + 0x180]
push 0
lea edx, [ecx + 0x40]
call fcn.00431db0
lea ecx, [ebx + 0x200]
push 0
lea edx, [ecx + 0x40]
call fcn.00431db0
lea ecx, [ebx + 0x240]
push 0
lea edx, [ecx + 0x40]
call fcn.00431db0
lea ecx, [ebx + 0x280]
push 0
lea edx, [ecx + 0x40]
call fcn.00431db0
mov edi, dword [ebp - 0x1c]
add esp, 0x24
mov ecx, dword [ebp - 8]
jmp 0x432c3a
test eax, eax
jne 0x432c47
cmp dword [esi + 0x863c], 0
je 0x432cc6
cmp dword [ebp - 4], 0
jne 0x432c5b
cmp dword [esi + 0x8638], 0
mov edx, 0xfffffff0
je 0x432c60
mov edx, 0x30
test ecx, ecx
mov eax, 0xf0
mov ecx, 0xfffffff0
cmovne eax, ecx
cmp edx, eax
jge 0x432cc6
sub eax, edx
lea edi, [edi + edx*4]
dec eax
add edi, 0x128
shr eax, 6
inc eax
mov dword [ebp - 0x4c], eax
mov ebx, eax
lea eax, [edi + 4]
push eax
push edi
lea edx, [edi - 0xf0]
lea ecx, [edi - 0xec]
call fcn.00431cc0
lea eax, [edi - 4]
push eax
lea eax, [edi - 8]
push eax
lea edx, [edi - 0xf8]
lea ecx, [edi - 0xf4]
call fcn.00431cc0
add esp, 0x10
add edi, 0x100
dec ebx
jne 0x432c88
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
test edx, edx
jne 0x432cd9
cmp dword [esi + 0x8638], edx
je 0x432d67
cmp dword [ebp - 0x10], 0
jne 0x432d67
cmp dword [ebp - 0xc], 0
jne 0x432d2a
cmp dword [esi + 0x863c], 0
jne 0x432d2a
mov edi, dword [ebp - 0x1c]
lea eax, [ebx - 0xe4]
push eax
lea eax, [ebx - 0xec]
push eax
lea edx, [edi - 0xc]
lea ecx, [edi - 4]
call fcn.00431cc0
lea eax, [ebx - 0xe8]
push eax
lea eax, [ebx - 0xf0]
push eax
lea edx, [edi - 0x10]
lea ecx, [edi - 8]
call fcn.00431cc0
add esp, 0x10
lea edi, [ebx - 0xac]
mov esi, 3
lea eax, [edi + 8]
push eax
push edi
lea edx, [edi - 0x20]
lea ecx, [edi - 0x18]
call fcn.00431cc0
lea eax, [edi + 4]
push eax
lea eax, [edi - 4]
push eax
lea edx, [edi - 0x24]
lea ecx, [edi - 0x1c]
call fcn.00431cc0
add esp, 0x10
add edi, 0x40
dec esi
jne 0x432d35
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 4]
cmp dword [ebp - 0xc], 0
jne 0x432f64
test edx, edx
mov eax, 0xf0
mov edx, 0x30
cmovne eax, edx
test ecx, ecx
mov edx, 0xfffffff0
mov ecx, 0x30
cmovne edx, ecx
cmp edx, eax
jge 0x432f64
sub eax, edx
lea esi, [edx + 2]
dec eax
lea esi, [edi + esi*4]
shr eax, 6
inc eax
mov dword [ebp - 0x18], eax
lea ecx, [ecx]
lea ecx, [esi - 8]
call fcn.00435af0
mov ecx, dword [esi - 8]
add ecx, dword [esi + 4]
mov edx, dword [esi - 4]
mov edi, ecx
sub edx, dword [esi]
sub edi, edx
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x4c]
inc edi
sar edi, 1
mov ecx, edi
sub edi, dword [esi]
sub ecx, dword [esi + 4]
sub eax, edi
mov dword [esi - 8], eax
lea eax, [ecx + edx]
mov dword [esi - 4], eax
mov dword [esi], ecx
mov dword [esi + 4], edi
mov ebx, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
neg ebx
mov ecx, dword [esi + 0x34]
add edi, ebx
mov eax, dword [esi + 0x28]
neg edi
add eax, ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x4c], eax
mov edx, eax
mov ecx, edi
sar edx, 1
sar ecx, 1
add ebx, ecx
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
sub eax, edx
add dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
lea eax, [eax + eax*2]
add eax, 3
sar eax, 2
sub ebx, eax
lea eax, [ebx + 1]
sub ebx, ecx
lea eax, [eax + eax*2]
sar eax, 3
add dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
lea eax, [edi + ebx]
add ecx, edx
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x4c]
sub eax, ecx
mov dword [esi + 0x28], eax
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0xc]
sub ebx, edi
add edx, dword [esi + 0x10]
lea eax, [ebx + 1]
sar eax, 1
add edi, eax
lea eax, [edx + 2]
lea eax, [edx + eax*2]
mov dword [ebp - 0x4c], edi
mov ecx, dword [ebp - 0x4c]
lea edi, [edx + 1]
sar eax, 3
sub ebx, eax
sar edi, 1
sub edi, dword [esi + 0x10]
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
add edx, eax
lea eax, [ecx + 2]
lea eax, [ecx + eax*2]
sar eax, 3
lea esi, [esi + 0x100]
sub edi, eax
lea eax, [edi + 2]
lea eax, [edi + eax*2]
sar eax, 3
add ecx, eax
mov eax, ebx
sar eax, 1
add edi, eax
lea eax, [edx + 1]
sar eax, 1
sub ebx, edi
sub ecx, eax
lea eax, [ecx + edx]
mov dword [esi - 0xf4], eax
mov dword [esi - 0xf8], ebx
mov dword [esi - 0xec], ecx
mov dword [esi - 0xf0], edi
mov edi, dword [esi - 0xdc]
mov ebx, dword [esi - 0xe8]
mov edx, dword [esi - 0xe0]
sub ebx, edi
add edx, dword [esi - 0xe4]
lea eax, [ebx + 1]
sar eax, 1
add edi, eax
lea eax, [edx + 2]
lea eax, [edx + eax*2]
mov dword [ebp - 0x4c], edi
mov ecx, dword [ebp - 0x4c]
lea edi, [edx + 1]
sar eax, 3
sub ebx, eax
sar edi, 1
sub edi, dword [esi - 0xe4]
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
add edx, eax
lea eax, [ecx + 2]
lea eax, [ecx + eax*2]
sar eax, 3
sub edi, eax
lea eax, [edi + 2]
lea eax, [edi + eax*2]
sar eax, 3
add ecx, eax
mov eax, ebx
sar eax, 1
add edi, eax
lea eax, [edx + 1]
sar eax, 1
sub ebx, edi
sub ecx, eax
dec dword [ebp - 0x18]
lea eax, [ecx + edx]
mov dword [esi - 0xe0], eax
mov dword [esi - 0xe8], ebx
mov dword [esi - 0xdc], ecx
mov dword [esi - 0xe4], edi
jne 0x432db0
mov esi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x14]
cmp dword [ebp - 0x10], 0
jne 0x4334bc
xor eax, eax
mov ecx, 0xc0
cmp dword [ebp - 8], eax
mov edi, 0xffffffc0
cmovne ecx, eax
mov eax, dword [ebp - 4]
xor edx, edx
test eax, eax
cmovne edi, edx
cmp edi, ecx
jge 0x4334bf
sub ecx, edi
lea edx, [edi + 2]
dec ecx
lea edx, [ebx + edx*4]
shr ecx, 6
inc ecx
mov dword [ebp - 0x18], edx
mov esi, ecx
lea edi, [edx - 8]
mov ecx, edi
call fcn.00435af0
mov ecx, dword [edi]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
add ecx, eax
mov ebx, dword [edx]
mov edi, ecx
mov edx, dword [edx - 4]
sub edx, ebx
mov dword [ebp - 0x4c], ecx
sub edi, edx
inc edi
sar edi, 1
mov ecx, edi
sub edi, ebx
mov ebx, dword [ebp - 0x18]
sub ecx, eax
mov eax, dword [ebp - 0x4c]
sub eax, edi
mov dword [ebx - 8], eax
lea eax, [ecx + edx]
mov edx, ebx
mov dword [edx - 4], eax
mov dword [edx], ecx
mov dword [edx + 4], edi
mov ebx, dword [edx + 0x30]
mov edi, dword [edx + 0x2c]
neg ebx
mov ecx, dword [edx + 0x34]
add edi, ebx
mov eax, dword [edx + 0x28]
neg edi
add eax, ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x4c], eax
mov edx, eax
mov ecx, edi
sar edx, 1
sar ecx, 1
add ebx, ecx
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
sub eax, edx
add dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
lea eax, [eax + eax*2]
add eax, 3
sar eax, 2
sub ebx, eax
lea eax, [ebx + 1]
sub ebx, ecx
lea eax, [eax + eax*2]
sar eax, 3
add dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
lea eax, [edi + ebx]
add ecx, edx
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x34], ecx
mov dword [edx + 0x30], ebx
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x4c]
sub eax, ecx
mov dword [edx + 0x28], eax
mov edi, dword [edx + 0x14]
mov ebx, dword [edx + 8]
mov ecx, dword [edx + 0x10]
sub ebx, edi
mov edx, dword [edx + 0xc]
add edx, ecx
lea eax, [ebx + 1]
sar eax, 1
add edi, eax
lea eax, [edx + 2]
mov dword [ebp - 0x4c], edi
lea edi, [edx + 1]
sar edi, 1
sub edi, ecx
lea eax, [edx + eax*2]
mov ecx, dword [ebp - 0x4c]
sar eax, 3
sub ebx, eax
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
add edx, eax
lea eax, [ecx + 2]
lea eax, [ecx + eax*2]
sar eax, 3
sub edi, eax
lea eax, [edi + 2]
lea eax, [edi + eax*2]
sar eax, 3
add ecx, eax
mov eax, ebx
sar eax, 1
add edi, eax
lea eax, [edx + 1]
sar eax, 1
sub ebx, edi
sub ecx, eax
lea eax, [edx + ecx]
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xc], eax
mov dword [edx + 8], ebx
mov dword [edx + 0x14], ecx
mov dword [edx + 0x10], edi
mov edi, dword [edx + 0x24]
mov ebx, dword [edx + 0x18]
mov ecx, dword [edx + 0x1c]
sub ebx, edi
mov edx, dword [edx + 0x20]
add edx, ecx
lea eax, [ebx + 1]
sar eax, 1
add edi, eax
lea eax, [edx + 2]
lea eax, [edx + eax*2]
mov dword [ebp - 0x4c], edi
sar eax, 3
lea edi, [edx + 1]
sub ebx, eax
sar edi, 1
sub edi, ecx
mov ecx, dword [ebp - 0x4c]
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
add edx, eax
lea eax, [ecx + 2]
lea eax, [ecx + eax*2]
sar eax, 3
sub edi, eax
lea eax, [edi + 2]
lea eax, [edi + eax*2]
sar eax, 3
add ecx, eax
mov eax, ebx
sar eax, 1
add edi, eax
lea eax, [edx + 1]
sar eax, 1
sub ebx, edi
sub ecx, eax
lea eax, [ecx + edx]
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x20], eax
mov dword [edx + 0x18], ebx
mov dword [edx + 0x24], ecx
mov dword [edx + 0x1c], edi
lea edi, [edx + 0x38]
mov ecx, edi
call fcn.00435af0
mov edx, dword [ebp - 0x18]
mov ecx, dword [edi]
mov eax, dword [edx + 0x44]
add ecx, eax
mov ebx, dword [edx + 0x40]
mov dword [ebp - 0x4c], ecx
mov edx, dword [edx + 0x3c]
mov edi, ecx
sub edx, ebx
sub edi, edx
inc edi
sar edi, 1
mov ecx, edi
sub edi, ebx
sub ecx, eax
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
sub eax, edi
mov dword [ebx + 0x38], eax
lea eax, [ecx + edx]
mov edx, ebx
mov dword [edx + 0x3c], eax
mov dword [edx + 0x40], ecx
mov dword [edx + 0x44], edi
mov ebx, dword [edx + 0x70]
mov edi, dword [edx + 0x6c]
neg ebx
mov ecx, dword [edx + 0x74]
add edi, ebx
mov eax, dword [edx + 0x68]
neg edi
add eax, ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x4c], eax
mov edx, eax
mov ecx, edi
sar edx, 1
sar ecx, 1
add ebx, ecx
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
sub eax, edx
add dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
lea eax, [eax + eax*2]
add eax, 3
sar eax, 2
sub ebx, eax
lea eax, [ebx + 1]
sub ebx, ecx
lea eax, [eax + eax*2]
sar eax, 3
add dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
lea eax, [edi + ebx]
add ecx, edx
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x74], ecx
mov dword [edx + 0x70], ebx
mov dword [edx + 0x6c], eax
mov eax, dword [ebp - 0x4c]
sub eax, ecx
mov dword [edx + 0x68], eax
mov edi, dword [edx + 0x54]
mov ebx, dword [edx + 0x48]
mov ecx, dword [edx + 0x50]
sub ebx, edi
mov edx, dword [edx + 0x4c]
add edx, ecx
lea eax, [ebx + 1]
sar eax, 1
add edi, eax
lea eax, [edx + 2]
lea eax, [edx + eax*2]
mov dword [ebp - 0x4c], edi
sar eax, 3
lea edi, [edx + 1]
sub ebx, eax
sar edi, 1
sub edi, ecx
mov ecx, dword [ebp - 0x4c]
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
add edx, eax
lea eax, [ecx + 2]
lea eax, [ecx + eax*2]
sar eax, 3
sub edi, eax
lea eax, [edi + 2]
lea eax, [edi + eax*2]
sar eax, 3
add ecx, eax
mov eax, ebx
sar eax, 1
add edi, eax
lea eax, [edx + 1]
sar eax, 1
sub ebx, edi
sub ecx, eax
lea eax, [ecx + edx]
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x4c], eax
mov dword [edx + 0x48], ebx
mov dword [edx + 0x54], ecx
mov dword [edx + 0x50], edi
mov edi, dword [edx + 0x64]
mov ebx, dword [edx + 0x58]
mov ecx, dword [edx + 0x5c]
sub ebx, edi
mov edx, dword [edx + 0x60]
add edx, ecx
lea eax, [ebx + 1]
sar eax, 1
add edi, eax
lea eax, [edx + 2]
lea eax, [edx + eax*2]
mov dword [ebp - 0x4c], edi
sar eax, 3
lea edi, [edx + 1]
sub ebx, eax
sar edi, 1
sub edi, ecx
mov ecx, dword [ebp - 0x4c]
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
add edx, eax
lea eax, [ecx + 2]
lea eax, [ecx + eax*2]
sar eax, 3
sub edi, eax
lea eax, [edi + 2]
lea eax, [edi + eax*2]
sar eax, 3
add ecx, eax
mov eax, ebx
sar eax, 1
add edi, eax
lea eax, [edx + 1]
sar eax, 1
sub ebx, edi
sub ecx, eax
lea eax, [ecx + edx]
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x60], eax
mov dword [edx + 0x58], ebx
mov dword [edx + 0x64], ecx
mov dword [edx + 0x5c], edi
lea edi, [edx + 0x78]
mov ecx, edi
call fcn.00435af0
mov edx, dword [ebp - 0x18]
mov ecx, dword [edi]
mov eax, dword [edx + 0x84]
add ecx, eax
mov ebx, dword [edx + 0x80]
mov edi, ecx
mov edx, dword [edx + 0x7c]
sub edx, ebx
mov dword [ebp - 0x4c], ecx
sub edi, edx
inc edi
sar edi, 1
mov ecx, edi
sub ecx, eax
sub edi, ebx
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
sub eax, edi
mov dword [ebx + 0x78], eax
lea eax, [ecx + edx]
mov edx, ebx
mov dword [edx + 0x7c], eax
mov dword [edx + 0x80], ecx
mov dword [edx + 0x84], edi
mov ebx, dword [edx + 0xb0]
mov edi, dword [edx + 0xac]
neg ebx
mov ecx, dword [edx + 0xb4]
add edi, ebx
mov eax, dword [edx + 0xa8]
neg edi
add eax, ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x4c], eax
mov edx, eax
mov ecx, edi
sar edx, 1
sar ecx, 1
add ebx, ecx
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
sub eax, edx
add dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
lea eax, [eax + eax*2]
add eax, 3
sar eax, 2
sub ebx, eax
lea eax, [ebx + 1]
sub ebx, ecx
lea eax, [eax + eax*2]
sar eax, 3
add dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
lea eax, [edi + ebx]
add ecx, edx
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xb4], ecx
mov dword [edx + 0xb0], ebx
mov dword [edx + 0xac], eax
mov eax, dword [ebp - 0x4c]
sub eax, ecx
mov dword [edx + 0xa8], eax
mov edi, dword [edx + 0x94]
mov ebx, dword [edx + 0x88]
mov ecx, dword [edx + 0x90]
sub ebx, edi
mov edx, dword [edx + 0x8c]
add edx, ecx
lea eax, [ebx + 1]
sar eax, 1
add edi, eax
lea eax, [edx + 2]
lea eax, [edx + eax*2]
mov dword [ebp - 0x4c], edi
sar eax, 3
lea edi, [edx + 1]
sub ebx, eax
sar edi, 1
sub edi, ecx
mov ecx, dword [ebp - 0x4c]
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
add edx, eax
lea eax, [ecx + 2]
lea eax, [ecx + eax*2]
sar eax, 3
sub edi, eax
lea eax, [edi + 2]
lea eax, [edi + eax*2]
sar eax, 3
add ecx, eax
mov eax, ebx
sar eax, 1
add edi, eax
lea eax, [edx + 1]
sar eax, 1
sub ebx, edi
sub ecx, eax
lea eax, [ecx + edx]
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x8c], eax
mov dword [edx + 0x88], ebx
mov dword [edx + 0x94], ecx
mov dword [edx + 0x90], edi
mov edi, dword [edx + 0xa4]
mov ebx, dword [edx + 0x98]
mov ecx, dword [edx + 0x9c]
sub ebx, edi
mov edx, dword [edx + 0xa0]
add edx, ecx
lea eax, [ebx + 1]
sar eax, 1
add edi, eax
lea eax, [edx + 2]
lea eax, [edx + eax*2]
mov dword [ebp - 0x4c], edi
sar eax, 3
lea edi, [edx + 1]
sub ebx, eax
sar edi, 1
sub edi, ecx
mov ecx, dword [ebp - 0x4c]
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
add edx, eax
lea eax, [ecx + 2]
lea eax, [ecx + eax*2]
sar eax, 3
sub edi, eax
lea eax, [edi + 2]
lea eax, [edi + eax*2]
sar eax, 3
add ecx, eax
mov eax, ebx
sar eax, 1
add edi, eax
lea eax, [edx + 1]
sar eax, 1
sub ebx, edi
sub ecx, eax
lea eax, [ecx + edx]
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xa0], eax
mov dword [edx + 0x98], ebx
mov dword [edx + 0xa4], ecx
mov dword [edx + 0x9c], edi
add edx, 0x100
mov dword [ebp - 0x18], edx
dec esi
jne 0x432fa4
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
cmp dword [ebp - 0x38], 2
jne 0x43374f
mov ebx, dword [ebp - 0xc]
test ebx, ebx
jne 0x4334d8
cmp dword [esi + 0x863c], ebx
je 0x43350d
test eax, eax
jne 0x4334e4
cmp dword [esi + 0x8638], eax
je 0x433504
mov edi, dword [ebp - 0x14]
mov ecx, edi
lea eax, [edi + 0x140]
push eax
lea eax, [edi + 0x40]
push eax
lea edx, [edi + 0x100]
call fcn.00431cc0
add esp, 8
jmp 0x433507
mov edi, dword [ebp - 0x14]
test ebx, ebx
jne 0x433519
jmp 0x433510
mov edi, dword [ebp - 0x14]
cmp dword [esi + 0x863c], 0
je 0x43354a
cmp dword [ebp - 8], 0
jne 0x433528
cmp dword [esi + 0x8638], 0
je 0x43354a
lea eax, [edi - 0xc0]
push eax
lea eax, [edi - 0x1c0]
push eax
lea edx, [edi - 0x100]
lea ecx, [edi - 0x200]
call fcn.00431cc0
add esp, 8
mov ebx, dword [ebp - 0x10]
test ebx, ebx
jne 0x433559
cmp dword [esi + 0x863c], ebx
je 0x4335c6
cmp dword [ebp - 4], 0
jne 0x433568
cmp dword [esi + 0x8638], 0
je 0x43358a
mov ecx, dword [ebp - 0x1c]
lea eax, [ecx + 0x1c0]
push eax
lea eax, [ecx + 0xc0]
lea edx, [ecx + 0x180]
sub ecx, 0xffffff80
push eax
call fcn.00431cc0
add esp, 8
test ebx, ebx
jne 0x433596
cmp dword [esi + 0x863c], ebx
je 0x4335c6
cmp dword [ebp - 8], 0
jne 0x4335a5
cmp dword [esi + 0x8638], 0
je 0x4335c6
mov ebx, dword [ebp - 0x1c]
lea eax, [ebx - 0x40]
push eax
lea eax, [ebx - 0x140]
push eax
lea edx, [ebx - 0x80]
lea ecx, [ebx - 0x180]
call fcn.00431cc0
add esp, 8
jmp 0x4335c9
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x4335dc
cmp dword [esi + 0x8638], eax
je 0x43369e
cmp dword [ebp - 0x34], 0
jne 0x43368a
cmp dword [esi + 0x863c], 0
jne 0x43368a
cmp dword [ebp - 4], 0
jne 0x433602
cmp dword [esi + 0x8638], 0
je 0x43363d
lea eax, [edi + 0x40]
push eax
push edi
lea edx, [ebx + 0xc0]
lea ecx, [ebx + 0x80]
call fcn.00431cc0
lea eax, [edi + 0x140]
push eax
lea eax, [edi + 0x100]
push eax
lea edx, [ebx + 0x1c0]
lea ecx, [ebx + 0x180]
call fcn.00431cc0
mov eax, dword [ebp - 0x28]
add esp, 0x10
cmp dword [ebp - 8], 0
jne 0x43364c
cmp dword [esi + 0x8638], 0
je 0x43368a
lea eax, [edi - 0x1c0]
push eax
lea eax, [edi - 0x200]
push eax
lea edx, [ebx - 0x140]
lea ecx, [ebx - 0x180]
call fcn.00431cc0
lea eax, [edi - 0xc0]
push eax
lea eax, [edi - 0x100]
push eax
lea edx, [ebx - 0x40]
lea ecx, [ebx - 0x80]
call fcn.00431cc0
mov eax, dword [ebp - 0x28]
add esp, 0x10
test eax, eax
jne 0x43374f
cmp dword [esi + 0x8638], eax
jne 0x43374f
cmp dword [ebp - 0x34], 0
jne 0x4336bb
cmp dword [esi + 0x863c], 0
jne 0x4336bb
mov edx, edi
mov ecx, ebx
call fcn.00432120
jmp 0x43374f
cmp dword [ebp - 0xc], 0
jne 0x4336ca
cmp dword [esi + 0x863c], 0
je 0x433702
lea eax, [edi + 0x100]
push eax
push edi
lea edx, [edi - 0x100]
lea ecx, [edi - 0x200]
call fcn.00431cc0
lea eax, [edi + 0x140]
push eax
lea eax, [edi + 0x40]
push eax
lea edx, [edi - 0xc0]
lea ecx, [edi - 0x1c0]
call fcn.00431cc0
add esp, 0x10
cmp dword [ebp - 0x10], 0
jne 0x433711
cmp dword [esi + 0x863c], 0
je 0x43374f
lea edi, [ebx + 0x80]
lea eax, [edi + 0x100]
push eax
push edi
lea edx, [edi - 0x100]
lea ecx, [edi - 0x200]
call fcn.00431cc0
lea eax, [edi + 0x140]
push eax
lea eax, [edi + 0x40]
push eax
lea edx, [edi - 0xc0]
lea ecx, [edi - 0x1c0]
call fcn.00431cc0
add esp, 0x10
cmp dword [ebp - 0x3c], 0
jne 0x43378c
cmp dword [esi + 0x855c], 0
mov edi, dword [ebp - 0x1c]
je 0x433781
cmp dword [ebp - 0x40], 0
je 0x433781
xor eax, eax
lea esp, [esp]
sar dword [edi + eax*4 - 0x400], 1
add eax, 0x10
cmp eax, 0x100
jl 0x433770
lea ecx, [edi - 0x400]
call fcn.00431ae0
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 4]
inc eax
mov dword [ebp - 0x40], eax
cmp eax, dword [ebp - 0x44]
jl 0x432900
xor edx, edx
mov eax, 2
cmp dword [ebp - 0x48], 1
cmove edx, eax
xor eax, eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x1c], eax
test edx, edx
jle 0x4343a9
mov dword [ebp - 0x50], 0x10
jmp 0x4337d3
mov ecx, dword [ebp - 4]
cmp dword [ebp - 0x38], 0
mov edi, dword [esi + eax*4 + 0x8760]
mov ebx, dword [esi + eax*4 + 0x87a0]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x24], ebx
je 0x433b28
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x433800
cmp dword [esi + 0x863c], eax
je 0x433855
test ecx, ecx
jne 0x43380c
cmp dword [esi + 0x8638], ecx
je 0x433824
lea eax, [ebx + 0xc]
mov ecx, ebx
push eax
lea eax, [ebx + 8]
push eax
lea edx, [ebx + 4]
call fcn.00431cc0
mov eax, dword [ebp - 0xc]
add esp, 8
test eax, eax
jne 0x433830
cmp dword [esi + 0x863c], eax
je 0x433855
cmp dword [ebp - 8], 0
jne 0x43383f
cmp dword [esi + 0x8638], 0
je 0x433855
lea eax, [ebx - 0x68]
push eax
lea eax, [ebx - 0x64]
push eax
lea edx, [ebx - 0x70]
lea ecx, [ebx - 0x6c]
call fcn.00431cc0
add esp, 8
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x433864
cmp dword [esi + 0x863c], eax
je 0x4338c0
cmp dword [ebp - 4], 0
jne 0x433873
cmp dword [esi + 0x8638], 0
je 0x43388c
lea eax, [edi + 0x64]
push eax
lea eax, [edi + 0x60]
push eax
lea edx, [edi + 0x6c]
lea ecx, [edi + 0x68]
call fcn.00431cc0
mov eax, dword [ebp - 0x10]
add esp, 8
test eax, eax
jne 0x433898
cmp dword [esi + 0x863c], eax
je 0x4338c0
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x4338a7
cmp dword [esi + 0x8638], ecx
je 0x4338cb
lea eax, [edi - 0x10]
push eax
lea eax, [edi - 0xc]
push eax
lea edx, [edi - 8]
lea ecx, [edi - 4]
call fcn.00431cc0
mov eax, dword [ebp - 0x10]
add esp, 8
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x433a35
test eax, eax
jne 0x433a42
cmp dword [ebp - 0xc], eax
jne 0x43393c
cmp dword [esi + 0x863c], eax
jne 0x43393c
cmp dword [ebp - 4], eax
jne 0x4338f2
cmp dword [esi + 0x8638], eax
jne 0x4338f2
lea ecx, [eax - 0x20]
jmp 0x4338f4
xor ecx, ecx
lea eax, [ebx + ecx*4]
mov dword [ebp - 0x44], eax
lea eax, [edi + 0x40]
mov ebx, dword [ebp - 0x44]
lea eax, [eax + ecx*4]
mov dword [ebp - 0x40], eax
mov eax, 0x1f
mov edi, dword [ebp - 0x40]
sub eax, ecx
shr eax, 5
inc eax
mov dword [ebp - 0x4c], eax
mov esi, eax
lea esp, [esp]
push 0x20
mov edx, ebx
mov ecx, edi
call fcn.00431db0
add esp, 4
sub ebx, 0xffffff80
sub edi, 0xffffff80
dec esi
jne 0x433920
mov ebx, dword [ebp - 0x24]
jmp 0x43399c
cmp dword [ebp - 4], 0
jne 0x433952
cmp dword [esi + 0x8638], 0
jne 0x433952
mov ecx, 0xffffffe0
jmp 0x433954
xor ecx, ecx
mov eax, 0x1f
lea edi, [ecx + 0x20]
sub eax, ecx
lea edi, [ebx + edi*4]
shr eax, 5
inc eax
mov dword [ebp - 0x4c], eax
mov esi, eax
lea ebx, [ebx]
lea eax, [edi + 4]
push eax
push edi
lea edx, [edi - 0x70]
lea ecx, [edi - 0x6c]
call fcn.00431cc0
lea eax, [edi + 0xc]
push eax
lea eax, [edi + 8]
push eax
lea edx, [edi - 0x68]
lea ecx, [edi - 0x64]
call fcn.00431cc0
add esp, 0x10
sub edi, 0xffffff80
dec esi
jne 0x433970
cmp dword [ebp - 4], 0
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x20]
jne 0x4339c3
cmp dword [esi + 0x8638], 0
jne 0x4339c3
lea ecx, [ebx - 0x80]
push 0x20
lea edx, [ecx + 0x40]
call fcn.00431db0
add esp, 4
jmp 0x433a21
cmp dword [ebp - 0xc], 0
jne 0x4339f8
cmp dword [esi + 0x863c], 0
jne 0x4339f8
lea eax, [ebx + 8]
push eax
push ebx
lea edx, [edi + 0x60]
lea ecx, [edi + 0x68]
call fcn.00431cc0
lea eax, [ebx + 0xc]
push eax
lea eax, [ebx + 4]
push eax
lea edx, [edi + 0x64]
lea ecx, [edi + 0x6c]
call fcn.00431cc0
add esp, 0x10
lea eax, [ebx + 0x48]
push eax
lea eax, [ebx + 0x40]
push eax
lea edx, [ebx + 0x20]
lea ecx, [ebx + 0x28]
call fcn.00431cc0
lea eax, [ebx + 0x4c]
push eax
lea eax, [ebx + 0x44]
push eax
lea edx, [ebx + 0x24]
lea ecx, [ebx + 0x2c]
call fcn.00431cc0
add esp, 0x10
push 0x20
lea edx, [ebx + 0x40]
mov ecx, ebx
call fcn.00431db0
mov ecx, dword [ebp - 8]
add esp, 4
jmp 0x433a39
test eax, eax
jne 0x433a42
cmp dword [esi + 0x863c], 0
je 0x433ab2
cmp dword [ebp - 4], 0
jne 0x433a56
cmp dword [esi + 0x8638], 0
mov edx, 0xfffffff0
je 0x433a5b
mov edx, 0x10
test ecx, ecx
mov eax, 0x20
mov ecx, 0xfffffff0
cmovne eax, ecx
cmp edx, eax
jge 0x433ab2
sub eax, edx
lea ebx, [edx + 0x2a]
dec eax
lea ebx, [edi + ebx*4]
shr eax, 5
inc eax
mov dword [ebp - 0x4c], eax
mov esi, eax
lea eax, [ebx + 4]
push eax
push ebx
lea edx, [ebx - 0x70]
lea ecx, [ebx - 0x6c]
call fcn.00431cc0
lea eax, [ebx - 4]
push eax
lea eax, [ebx - 8]
push eax
lea edx, [ebx - 0x78]
lea ecx, [ebx - 0x74]
call fcn.00431cc0
add esp, 0x10
sub ebx, 0xffffff80
dec esi
jne 0x433a80
mov esi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x433ac1
cmp dword [esi + 0x8638], ecx
je 0x433b2b
cmp dword [ebp - 0x10], 0
jne 0x433b2b
cmp dword [ebp - 0xc], 0
jne 0x433aff
cmp dword [esi + 0x863c], 0
jne 0x433aff
lea eax, [ebx - 0x64]
push eax
lea eax, [ebx - 0x6c]
push eax
lea edx, [edi - 0xc]
lea ecx, [edi - 4]
call fcn.00431cc0
lea eax, [ebx - 0x68]
push eax
lea eax, [ebx - 0x70]
push eax
lea edx, [edi - 0x10]
lea ecx, [edi - 8]
call fcn.00431cc0
add esp, 0x10
lea eax, [ebx - 0x24]
push eax
lea eax, [ebx - 0x2c]
push eax
lea edx, [ebx - 0x4c]
lea ecx, [ebx - 0x44]
call fcn.00431cc0
lea eax, [ebx - 0x28]
push eax
lea eax, [ebx - 0x30]
push eax
lea edx, [ebx - 0x50]
lea ecx, [ebx - 0x48]
call fcn.00431cc0
add esp, 0x10
mov ecx, dword [ebp - 8]
cmp dword [ebp - 0xc], 0
jne 0x433cfd
test ecx, ecx
mov eax, 0x10
mov edx, 0x30
mov ecx, 0xfffffff0
cmovne edx, eax
mov eax, dword [ebp - 4]
test eax, eax
cmovne ecx, dword [ebp - 0x50]
cmp ecx, edx
jge 0x433d00
sub edx, ecx
lea esi, [ecx + 2]
dec edx
lea esi, [edi + esi*4]
shr edx, 5
inc edx
mov dword [ebp - 0x44], edx
lea ebx, [ebx]
lea ecx, [esi - 8]
call fcn.00435af0
mov ecx, dword [esi - 8]
add ecx, dword [esi + 4]
mov edx, dword [esi - 4]
mov edi, ecx
sub edx, dword [esi]
sub edi, edx
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x4c]
inc edi
sar edi, 1
mov ecx, edi
sub edi, dword [esi]
sub ecx, dword [esi + 4]
sub eax, edi
mov dword [esi - 8], eax
lea eax, [ecx + edx]
mov dword [esi - 4], eax
mov dword [esi], ecx
mov dword [esi + 4], edi
mov ebx, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
neg ebx
mov ecx, dword [esi + 0x34]
add edi, ebx
mov eax, dword [esi + 0x28]
neg edi
add eax, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x4c], eax
mov edx, eax
mov ecx, edi
sar edx, 1
sar ecx, 1
add ebx, ecx
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
sub eax, edx
add dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
lea eax, [eax + eax*2]
add eax, 3
sar eax, 2
sub ebx, eax
lea eax, [ebx + 1]
sub ebx, ecx
lea eax, [eax + eax*2]
sar eax, 3
add dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
lea eax, [edi + ebx]
add ecx, edx
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x4c]
sub eax, ecx
mov dword [esi + 0x28], eax
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0xc]
sub ebx, edi
add edx, dword [esi + 0x10]
lea eax, [ebx + 1]
sar eax, 1
add edi, eax
lea eax, [edx + 2]
lea eax, [edx + eax*2]
mov dword [ebp - 0x4c], edi
mov ecx, dword [ebp - 0x4c]
lea edi, [edx + 1]
sar eax, 3
sub ebx, eax
sar edi, 1
sub edi, dword [esi + 0x10]
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
add edx, eax
lea eax, [ecx + 2]
lea eax, [ecx + eax*2]
sar eax, 3
lea esi, [esi + 0x80]
sub edi, eax
lea eax, [edi + 2]
lea eax, [edi + eax*2]
sar eax, 3
add ecx, eax
mov eax, ebx
sar eax, 1
add edi, eax
lea eax, [edx + 1]
sar eax, 1
sub ebx, edi
sub ecx, eax
lea eax, [ecx + edx]
mov dword [esi - 0x74], eax
mov dword [esi - 0x78], ebx
mov dword [esi - 0x6c], ecx
mov dword [esi - 0x70], edi
mov edi, dword [esi - 0x5c]
mov ebx, dword [esi - 0x68]
mov edx, dword [esi - 0x60]
sub ebx, edi
add edx, dword [esi - 0x64]
lea eax, [ebx + 1]
sar eax, 1
add edi, eax
lea eax, [edx + 2]
lea eax, [edx + eax*2]
mov dword [ebp - 0x4c], edi
mov ecx, dword [ebp - 0x4c]
lea edi, [edx + 1]
sar eax, 3
sub ebx, eax
sar edi, 1
sub edi, dword [esi - 0x64]
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
add edx, eax
lea eax, [ecx + 2]
lea eax, [ecx + eax*2]
sar eax, 3
sub edi, eax
lea eax, [edi + 2]
lea eax, [edi + eax*2]
sar eax, 3
add ecx, eax
mov eax, ebx
sar eax, 1
add edi, eax
lea eax, [edx + 1]
sar eax, 1
sub ebx, edi
sub ecx, eax
dec dword [ebp - 0x44]
lea eax, [ecx + edx]
mov dword [esi - 0x60], eax
mov dword [esi - 0x68], ebx
mov dword [esi - 0x5c], ecx
mov dword [esi - 0x64], edi
jne 0x433b70
mov esi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 8]
test edx, edx
jne 0x433ed5
test edi, edi
mov dword [ebp - 0x4c], edx
mov ecx, 0x20
mov dword [ebp - 0x4c], 0xffffffe0
cmovne ecx, edx
mov dword [ebp - 0x44], edx
test eax, eax
mov eax, dword [ebp - 0x4c]
cmovne eax, edx
cmp eax, ecx
jge 0x433ed5
sub ecx, eax
lea esi, [eax + 2]
dec ecx
lea esi, [ebx + esi*4]
shr ecx, 5
inc ecx
mov dword [ebp - 0x44], ecx
lea ecx, [esi - 8]
call fcn.00435af0
mov ecx, dword [esi - 8]
add ecx, dword [esi + 4]
mov edx, dword [esi - 4]
mov edi, ecx
sub edx, dword [esi]
sub edi, edx
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x4c]
inc edi
sar edi, 1
mov ecx, edi
sub edi, dword [esi]
sub ecx, dword [esi + 4]
sub eax, edi
mov dword [esi - 8], eax
lea eax, [ecx + edx]
mov dword [esi - 4], eax
mov dword [esi], ecx
mov dword [esi + 4], edi
mov ebx, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
neg ebx
mov ecx, dword [esi + 0x34]
add edi, ebx
mov eax, dword [esi + 0x28]
neg edi
add eax, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x4c], eax
mov edx, eax
mov ecx, edi
sar edx, 1
sar ecx, 1
add ebx, ecx
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
sub eax, edx
add dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
lea eax, [eax + eax*2]
add eax, 3
sar eax, 2
sub ebx, eax
lea eax, [ebx + 1]
sub ebx, ecx
lea eax, [eax + eax*2]
sar eax, 3
add dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
lea eax, [edi + ebx]
add ecx, edx
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x4c]
sub eax, ecx
mov dword [esi + 0x28], eax
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0xc]
sub ebx, edi
add edx, dword [esi + 0x10]
lea eax, [ebx + 1]
sar eax, 1
add edi, eax
lea eax, [edx + 2]
lea eax, [edx + eax*2]
mov dword [ebp - 0x4c], edi
mov ecx, dword [ebp - 0x4c]
lea edi, [edx + 1]
sar eax, 3
sub ebx, eax
sar edi, 1
sub edi, dword [esi + 0x10]
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
add edx, eax
lea eax, [ecx + 2]
lea eax, [ecx + eax*2]
sar eax, 3
lea esi, [esi + 0x80]
sub edi, eax
lea eax, [edi + 2]
lea eax, [edi + eax*2]
sar eax, 3
add ecx, eax
mov eax, ebx
sar eax, 1
add edi, eax
lea eax, [edx + 1]
sar eax, 1
sub ebx, edi
sub ecx, eax
lea eax, [ecx + edx]
mov dword [esi - 0x74], eax
mov dword [esi - 0x78], ebx
mov dword [esi - 0x6c], ecx
mov dword [esi - 0x70], edi
mov edi, dword [esi - 0x5c]
mov ebx, dword [esi - 0x68]
mov edx, dword [esi - 0x60]
sub ebx, edi
add edx, dword [esi - 0x64]
lea eax, [ebx + 1]
sar eax, 1
add edi, eax
lea eax, [edx + 2]
lea eax, [edx + eax*2]
mov dword [ebp - 0x4c], edi
mov ecx, dword [ebp - 0x4c]
lea edi, [edx + 1]
sar eax, 3
sub ebx, eax
sar edi, 1
sub edi, dword [esi - 0x64]
lea eax, [ebx + 2]
lea eax, [ebx + eax*2]
sar eax, 3
add edx, eax
lea eax, [ecx + 2]
lea eax, [ecx + eax*2]
sar eax, 3
sub edi, eax
lea eax, [edi + 2]
lea eax, [edi + eax*2]
sar eax, 3
add ecx, eax
mov eax, ebx
sar eax, 1
add edi, eax
lea eax, [edx + 1]
sar eax, 1
sub ebx, edi
sub ecx, eax
dec dword [ebp - 0x44]
lea eax, [ecx + edx]
mov dword [esi - 0x60], eax
mov dword [esi - 0x68], ebx
mov dword [esi - 0x5c], ecx
mov dword [esi - 0x64], edi
jne 0x433d45
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 8]
cmp dword [ebp - 0x38], 2
jne 0x4342f1
cmp dword [ebp - 0x2c], 0
jne 0x433eee
cmp dword [esi + 0x8644], 0
je 0x433f0b
mov ecx, dword [ebp - 0xc]
test ecx, ecx
jne 0x433efd
cmp dword [esi + 0x863c], ecx
je 0x433f0e
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx - 0x80]
sub dword [ebx - 0x100], eax
jmp 0x433f11
mov ecx, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x24]
cmp dword [ebp - 0x30], 0
jne 0x433f20
cmp dword [esi + 0x8640], 0
je 0x433f3b
test ecx, ecx
jne 0x433f2c
cmp dword [esi + 0x863c], ecx
je 0x433f3b
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebx]
mov dword [esi + edx*8 + 0x8648], eax
mov edx, dword [ebp - 0x10]
test edi, edi
jne 0x433f47
cmp dword [esi + 0x8638], edi
je 0x433f60
test ecx, ecx
jne 0x433f53
cmp dword [esi + 0x863c], ecx
je 0x433f60
mov eax, dword [ebp - 0x1c]
mov eax, dword [esi + eax*8 + 0x8648]
sub dword [ebx - 0x80], eax
cmp dword [ebp - 0x2c], 0
jne 0x433f6f
cmp dword [esi + 0x8644], 0
je 0x433f89
test edx, edx
jne 0x433f7b
cmp dword [esi + 0x863c], edx
je 0x433f89
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx - 0x40]
sub dword [ecx - 0xc0], eax
jmp 0x433f8c
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x30], 0
jne 0x433f9b
cmp dword [esi + 0x8640], 0
je 0x433fb7
test edx, edx
jne 0x433fa7
cmp dword [esi + 0x863c], edx
je 0x433fb7
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x40]
mov dword [esi + ebx*8 + 0x864c], eax
mov ebx, dword [ebp - 0x24]
test edi, edi
jne 0x433fc3
cmp dword [esi + 0x8638], edi
je 0x433fdc
test edx, edx
jne 0x433fcf
cmp dword [esi + 0x863c], edx
je 0x433fdc
mov eax, dword [ebp - 0x1c]
mov eax, dword [esi + eax*8 + 0x864c]
sub dword [ecx - 0x40], eax
cmp dword [ebp - 0x28], 0
jne 0x433fef
cmp dword [esi + 0x8638], 0
je 0x4340a2
cmp dword [ebp - 0x34], 0
jne 0x434098
cmp dword [esi + 0x863c], 0
jne 0x434098
cmp dword [ebp - 4], 0
jne 0x434015
cmp dword [esi + 0x8638], 0
je 0x434051
mov edx, dword [ecx + 0x40]
mov edi, dword [ebx]
lea eax, [edx + 2]
sar eax, 2
sub edi, eax
mov eax, edi
sar eax, 0xd
lea ecx, [edi + 1]
sar ecx, 1
add ecx, eax
mov eax, edi
sar eax, 9
add ecx, eax
mov eax, edi
sar eax, 5
add ecx, eax
sub edx, ecx
mov ecx, dword [ebp - 0x14]
lea eax, [edx + 2]
mov dword [ecx + 0x40], edx
sar eax, 2
sub edi, eax
mov dword [ebx], edi
mov edi, dword [ebp - 8]
test edi, edi
jne 0x43405d
cmp dword [esi + 0x8638], edi
je 0x434098
mov edx, dword [ecx - 0x40]
mov edi, dword [ebx - 0x80]
lea eax, [edx + 2]
sar eax, 2
sub edi, eax
mov eax, edi
sar eax, 0xd
lea ecx, [edi + 1]
sar ecx, 1
add ecx, eax
mov eax, edi
sar eax, 9
add ecx, eax
mov eax, edi
sar eax, 5
add ecx, eax
mov eax, dword [ebp - 0x14]
sub edx, ecx
mov dword [eax - 0x40], edx
lea eax, [edx + 2]
sar eax, 2
sub edi, eax
mov dword [ebx - 0x80], edi
cmp dword [ebp - 0x28], 0
jne 0x4341f8
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x4340b5
cmp dword [esi + 0x863c], eax
je 0x434171
cmp dword [esi + 0x8638], 0
jne 0x43415d
cmp dword [ebp - 0xc], 0
jne 0x4340d1
cmp dword [esi + 0x863c], 0
je 0x434107
mov edx, dword [ebx - 0x80]
mov edi, dword [ebx]
lea eax, [edx + 2]
sar eax, 2
sub edi, eax
mov eax, edi
sar eax, 0xd
lea ecx, [edi + 1]
sar ecx, 1
add ecx, eax
mov eax, edi
sar eax, 9
add ecx, eax
mov eax, edi
sar eax, 5
add ecx, eax
sub edx, ecx
mov dword [ebx - 0x80], edx
lea eax, [edx + 2]
sar eax, 2
sub edi, eax
mov dword [ebx], edi
cmp dword [ebp - 0x10], 0
jne 0x43411a
cmp dword [esi + 0x863c], 0
je 0x4341f8
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx - 0x40]
mov edi, dword [ecx + 0x40]
lea eax, [edx + 2]
sar eax, 2
sub edi, eax
mov eax, edi
sar eax, 0xd
lea ecx, [edi + 1]
sar ecx, 1
add ecx, eax
mov eax, edi
sar eax, 9
add ecx, eax
mov eax, edi
sar eax, 5
add ecx, eax
sub edx, ecx
mov ecx, dword [ebp - 0x14]
lea eax, [edx + 2]
mov dword [ecx - 0x40], edx
sar eax, 2
sub edi, eax
mov dword [ecx + 0x40], edi
jmp 0x4341fb
test eax, eax
jne 0x4341f8
cmp dword [esi + 0x863c], eax
jne 0x4341f8
cmp dword [esi + 0x8638], 0
jne 0x4341f8
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x24]
mov ebx, dword [ebx - 0x80]
mov edx, dword [eax - 0x40]
mov edi, dword [eax + 0x40]
mov ecx, dword [ecx]
add edi, ebx
add edx, ecx
lea eax, [edx + 1]
sar eax, 1
sub ecx, eax
lea eax, [edi + 1]
sar eax, 1
sub ebx, eax
mov dword [ebp - 0x4c], ecx
lea eax, [edx + 2]
sar eax, 2
sub edi, eax
mov eax, edi
sar eax, 0xd
lea ecx, [edi + 1]
sar ecx, 1
add ecx, eax
mov eax, edi
sar eax, 9
add ecx, eax
mov eax, edi
sar eax, 5
add ecx, eax
sub edx, ecx
mov ecx, dword [ebp - 0x4c]
lea eax, [edx + 2]
sar eax, 2
sub edi, eax
lea eax, [edx + 1]
sar eax, 1
add ecx, eax
sub edx, ecx
lea eax, [edi + 1]
sar eax, 1
add ebx, eax
mov eax, dword [ebp - 0x14]
sub edi, ebx
mov dword [eax - 0x40], edx
mov dword [eax + 0x40], edi
mov eax, dword [ebp - 0x24]
mov dword [eax - 0x80], ebx
mov ebx, eax
mov dword [ebx], ecx
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x43420a
cmp dword [esi + 0x8644], 0
je 0x434224
mov edx, dword [ebp - 0xc]
test edx, edx
jne 0x434219
cmp dword [esi + 0x863c], edx
je 0x434227
mov eax, dword [ebx - 0x80]
add dword [ebx - 0x100], eax
jmp 0x434227
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x30], 0
jne 0x434236
cmp dword [esi + 0x8640], 0
je 0x43424e
test edx, edx
jne 0x434242
cmp dword [esi + 0x863c], edx
je 0x43424e
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebx]
mov dword [esi + edi*8 + 0x8658], eax
mov edi, dword [ebp - 8]
test edi, edi
jne 0x43425d
cmp dword [esi + 0x8638], edi
je 0x434276
test edx, edx
jne 0x434269
cmp dword [esi + 0x863c], edx
je 0x434276
mov eax, dword [ebp - 0x1c]
mov eax, dword [esi + eax*8 + 0x8658]
add dword [ebx - 0x80], eax
cmp dword [ebp - 0x2c], 0
jne 0x434285
cmp dword [esi + 0x8644], 0
je 0x43429f
mov edx, dword [ebp - 0x10]
test edx, edx
jne 0x434294
cmp dword [esi + 0x863c], edx
je 0x4342a2
mov eax, dword [ecx - 0x40]
add dword [ecx - 0xc0], eax
jmp 0x4342a2
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x30], 0
jne 0x4342b1
cmp dword [esi + 0x8640], 0
je 0x4342cc
test edx, edx
jne 0x4342bd
cmp dword [esi + 0x863c], edx
je 0x4342cc
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x40]
mov dword [esi + ebx*8 + 0x865c], eax
jmp 0x4342cf
mov ebx, dword [ebp - 0x1c]
test edi, edi
jne 0x4342db
cmp dword [esi + 0x8638], edi
je 0x4342f1
test edx, edx
jne 0x4342e7
cmp dword [esi + 0x863c], edx
je 0x4342f1
mov eax, dword [esi + ebx*8 + 0x865c]
add dword [ecx - 0x40], eax
cmp dword [ebp - 0x3c], 0
jne 0x434399
cmp dword [esi + 0x855c], 0
jne 0x43434b
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx - 0x40]
mov ecx, dword [ebx - 0x100]
mov edx, dword [ebx - 0xc0]
add ecx, eax
mov edi, dword [ebx - 0x80]
mov ebx, ecx
sub edi, edx
mov dword [ebp - 0x4c], ecx
sub ebx, edi
sar ebx, 1
mov ecx, ebx
sub ebx, edx
mov edx, dword [ebp - 0x14]
sub ecx, eax
mov eax, dword [ebp - 0x4c]
invalid