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

Disassembly:
sub esp, 0x3c
mov cx, word [0x43a080]
mov dx, word [0x43a070]
sub cx, word [0x43964c]
mov eax, dword [0x439618]
push ebx
mov ebx, dword [0x439674]
and ecx, 0xfffffffe
push ebp
mov dword [esp + 0x24], ecx
mov cx, word [0x43a084]
push esi
mov si, word [esp + 0x28]
push edi
sub dx, ax
sub cx, ax
and edx, 0xfffffffe
movsx eax, bx
movsx edi, si
imul edi, eax
mov dword [esp + 0x1c], edx
inc ecx
movsx ebp, word [esp + 0x1c]
and ecx, 0xfffffffe
lea edx, [edx + ebx*2]
add edi, ebp
sub edx, ecx
mov dword [esp + 0x40], edi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x48], edx
mov edx, dword [0x43965c]
mov ebp, dword [0x439634]
add ecx, edx
mov dx, word [esp + 0x1c]
mov dword [esp + 0x10], ecx
add ecx, eax
sar word [esp + 0x20], 1
mov dword [esp + 0x14], ecx
mov cx, word [0x43a074]
sub cx, word [0x43964c]
add edi, ebp
sar dx, 1
sar si, 1
inc cx
lea ebp, [edi + eax]
sar cx, 1
mov dword [esp + 0x40], ecx
mov word [esp + 0x1c], dx
movsx ecx, si
imul eax, ecx
add eax, dword [0x439634]
mov word [esp + 0x2c], si
movsx edx, dx
add eax, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
sub edx, eax
add edx, ebx
mov ebx, dword [esp + 0x40]
cmp si, bx
mov dword [esp + 0x44], edx
jge 0x431b52
movsx eax, bx
sub eax, ecx
mov dword [esp + 0x3c], eax
mov ax, word [esp + 0x1c]
mov cx, word [esp + 0x20]
cmp ax, cx
jge 0x431b15
movsx ecx, cx
movsx eax, ax
sub ecx, eax
mov dword [esp + 0x38], ecx
mov cl, byte [edi]
mov bl, byte [edi + 1]
mov dl, byte [ebp]
inc edi
mov al, byte [ebp + 1]
inc edi
inc ebp
mov byte [esp + 0x24], al
mov al, byte [0x43a08c]
inc ebp
cmp cl, al
mov byte [esp + 0x30], cl
mov byte [esp + 0x34], bl
mov byte [esp + 0x28], dl
jne 0x431a4c
cmp bl, al
jne 0x431a3e
cmp dl, al
jne 0x431a3e
cmp byte [esp + 0x24], al
jne 0x431a3a
mov ecx, dword [esp + 0x18]
mov byte [ecx], 0xd8
jmp 0x431ae0
mov dl, byte [esp + 0x28]
cmp cl, al
jne 0x431a4c
mov ecx, dword [esp + 0x10]
mov cl, byte [ecx]
mov byte [esp + 0x30], cl
cmp bl, al
jne 0x431a5b
mov ecx, dword [esp + 0x10]
mov cl, byte [ecx + 1]
mov byte [esp + 0x34], cl
cmp dl, al
jne 0x431a69
mov edx, dword [esp + 0x14]
mov cl, byte [edx]
mov byte [esp + 0x28], cl
cmp byte [esp + 0x24], al
jne 0x431a7a
mov edx, dword [esp + 0x14]
mov al, byte [edx + 1]
mov byte [esp + 0x24], al
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov eax, dword [0x439604]
and ecx, 0xff
and edx, 0xff
mov esi, dword [eax + ecx*4]
mov ecx, dword [eax + edx*4]
add esi, ecx
mov ecx, dword [esp + 0x28]
and ecx, 0xff
mov edx, dword [eax + ecx*4]
add esi, edx
mov edx, dword [esp + 0x34]
and edx, 0xff
mov ecx, dword [eax + edx*4]
mov dl, 6
add esi, ecx
mov eax, esi
mov ecx, esi
shr eax, 0x12
imul dl
shr ecx, 0xa
and cl, 0xf
add al, cl
mov cl, dl
imul cl
mov ecx, dword [esp + 0x18]
mov edx, esi
shr edx, 2
and dl, 0xf
add al, dl
mov byte [ecx], al
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, 2
add esi, eax
add edx, eax
mov eax, dword [esp + 0x38]
inc ecx
dec eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x38], eax
jne 0x4319f8
mov edx, dword [esp + 0x44]
movsx eax, word [esp + 0x48]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, eax
add ecx, eax
add edi, eax
add ebp, eax
movsx eax, dx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
add ecx, eax
mov eax, dword [esp + 0x3c]
dec eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x3c], eax
jne 0x4319d9
mov ebx, dword [esp + 0x40]
mov eax, dword [0x439618]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
lea edx, [ecx + eax]
mov ecx, dword [0x43964c]
add esi, ecx
add eax, edi
add ecx, ebx
mov word [0x43a084], ax
mov word [0x43a074], cx
sub ax, dx
mov word [0x43a080], si
sub cx, si
pop edi
pop esi
pop ebp
mov word [0x43a070], dx
mov word [0x439670], ax
mov word [0x439668], cx
pop ebx
add esp, 0x3c
ret
sub esp, 0x44
mov cx, word [0x43a080]
mov dx, word [0x43a070]
sub cx, word [0x43964c]
mov eax, dword [0x439618]
push ebx
push ebp
mov ebp, dword [0x439674]
and ecx, 0xfffffffe
mov dword [esp + 0x28], ecx
mov cx, word [0x43a084]
mov bx, word [esp + 0x28]
push esi
sub dx, ax
sub cx, ax
movsx eax, bp
movsx esi, bx
imul esi, eax
and edx, 0xfffffffe
push edi
mov dword [esp + 0x18], edx
inc ecx
movsx edi, word [esp + 0x18]
and ecx, 0xfffffffe
lea edx, [edx + ebp*2]
add esi, edi
sub edx, ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x50], edx
mov edx, dword [0x43965c]
mov edi, dword [0x439634]
add ecx, edx
mov dx, word [0x43a074]
sub dx, word [0x43964c]
mov dword [esp + 0x10], ecx
sar word [esp + 0x1c], 1
add ecx, eax
add esi, edi
mov dword [esp + 0x14], ecx
mov cx, word [esp + 0x18]
sar cx, 1
sar bx, 1
inc dx
lea edi, [esi + eax]
sar dx, 1
mov dword [esp + 0x34], edx
mov word [esp + 0x18], cx
movsx edx, bx
mov dword [esp + 0x28], edx
mov word [esp + 0x30], bx
imul eax, dword [esp + 0x28]
movsx edx, cx
mov dword [esp + 0x40], edx
mov edx, dword [0x439634]
add eax, edx
mov edx, dword [esp + 0x40]
add eax, edx
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
add edx, ebp
cmp bx, word [esp + 0x34]
mov dword [esp + 0x4c], edx
jge 0x431e96
movsx ebx, word [esp + 0x34]
mov ebp, dword [esp + 0x28]
sub ebx, ebp
mov ebp, 2
mov dword [esp + 0x40], ebx
jmp 0x431cc7
mov cx, word [esp + 0x18]
mov bx, word [esp + 0x1c]
cmp cx, bx
jge 0x431e61
movsx edx, bx
movsx ecx, cx
sub edx, ecx
mov dword [esp + 0x3c], edx
mov dl, byte [esi]
mov bl, byte [esi + 1]
mov cl, byte [edi]
inc esi
inc esi
inc edi
mov byte [esp + 0x20], cl
mov byte [esp + 0x38], dl
mov cl, byte [edi]
inc edi
mov byte [esp + 0x24], cl
mov cl, byte [0x43a08c]
cmp dl, cl
mov byte [esp + 0x28], bl
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], edi
jne 0x431d36
cmp bl, cl
jne 0x431d28
cmp byte [esp + 0x20], cl
jne 0x431d28
cmp byte [esp + 0x24], cl
jne 0x431d28
mov byte [eax], 0xd8
jmp 0x431e35
cmp dl, cl
jne 0x431d36
mov edx, dword [esp + 0x10]
mov al, byte [edx]
mov byte [esp + 0x38], al
cmp byte [esp + 0x28], cl
jne 0x431d47
mov edx, dword [esp + 0x10]
mov al, byte [edx + 1]
mov byte [esp + 0x28], al
cmp byte [esp + 0x20], cl
jne 0x431d57
mov edx, dword [esp + 0x14]
mov al, byte [edx]
mov byte [esp + 0x20], al
cmp byte [esp + 0x24], cl
jne 0x431d68
mov ecx, dword [esp + 0x14]
mov dl, byte [ecx + 1]
mov byte [esp + 0x24], dl
mov eax, dword [esp + 0x20]
mov ecx, dword [0x4396ac]
and eax, 0xff
lea edx, [ecx + eax*2]
add edx, eax
mov eax, dword [esp + 0x24]
and eax, 0xff
lea esi, [ecx + eax*2]
add esi, eax
mov eax, dword [esp + 0x38]
and eax, 0xff
lea edi, [ecx + eax*2]
add edi, eax
mov eax, dword [esp + 0x28]
and eax, 0xff
lea ecx, [ecx + eax*2]
lea ebp, [eax + ecx]
xor eax, eax
mov al, byte [esi + 1]
xor ecx, ecx
mov cl, byte [edx + 1]
mov ebx, eax
xor eax, eax
add ebx, ecx
mov al, byte [ebp + 1]
xor ecx, ecx
mov cl, byte [edi + 1]
add ebx, eax
add ebx, ecx
xor eax, eax
mov al, byte [ebp]
xor ecx, ecx
mov cl, byte [edi]
add eax, ecx
xor ecx, ecx
mov cl, byte [esi]
add eax, ecx
xor ecx, ecx
mov cl, byte [edx]
add eax, ecx
mov ecx, dword [0x43962c]
shr eax, 2
shr ebx, 2
mov al, byte [eax + ecx]
mov cl, 6
imul cl
mov ecx, dword [0x43962c]
mov bl, byte [ebx + ecx]
add al, bl
mov bl, 6
imul bl
mov bl, al
xor eax, eax
mov al, byte [esi + 2]
mov esi, eax
xor eax, eax
mov al, byte [edx + 2]
xor edx, edx
mov dl, byte [ebp + 2]
add esi, eax
xor eax, eax
add esi, edx
mov al, byte [edi + 2]
mov edi, dword [esp + 0x48]
add esi, eax
mov ebp, 2
shr esi, 2
mov al, byte [esi + ecx]
mov esi, dword [esp + 0x44]
add bl, al
mov eax, dword [esp + 0x2c]
mov byte [eax], bl
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
add ecx, ebp
add ebx, ebp
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x3c]
inc eax
dec ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], ecx
jne 0x431ce1
mov edx, dword [esp + 0x4c]
movsx ecx, word [esp + 0x50]
mov ebx, dword [esp + 0x10]
add esi, ecx
add ebx, ecx
add edi, ecx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x14]
add ebx, ecx
movsx ecx, dx
add eax, ecx
mov ecx, dword [esp + 0x40]
dec ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], ecx
jne 0x431cc2
mov edx, dword [esp + 0x18]
mov eax, dword [0x439618]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x30]
mov ecx, dword [0x43964c]
add edx, eax
add eax, edi
mov edi, dword [esp + 0x34]
add esi, ecx
add ecx, edi
mov word [0x43a084], ax
mov word [0x43a074], cx
sub ax, dx
mov word [0x43a080], si
sub cx, si
pop edi
pop esi
pop ebp
mov word [0x43a070], dx
mov word [0x439670], ax
mov word [0x439668], cx
pop ebx
add esp, 0x44
ret
sub esp, 0x7c
mov ax, word [0x43a070]
push ebx
push ebp
push esi
mov esi, dword [0x439618]
push edi
sub ax, si
movsx ecx, ax
mov eax, 0x55555556
imul ecx
mov ecx, edx
mov eax, 0x55555556
shr ecx, 0x1f
add edx, ecx
lea edi, [edx + edx*2]
mov dx, word [0x43a080]
sub dx, word [0x43964c]
movsx ecx, dx
imul ecx
mov cx, word [0x43a084]
mov eax, edx
sub cx, si
mov esi, dword [0x439674]
shr eax, 0x1f
movsx ecx, cx
add edx, eax
add ecx, 2
mov eax, 0x55555556
lea ebx, [edx + edx*2]
imul ecx
mov eax, edx
lea ecx, [edi + esi*2]
shr eax, 0x1f
add edx, eax
mov eax, esi
add eax, ecx
lea ebp, [edx + edx*2]
sub eax, ebp
movsx ecx, si
mov dword [esp + 0x88], eax
movsx eax, bx
movsx edx, di
mov edi, ecx
mov dword [esp + 0x70], eax
imul edi, eax
mov dword [esp + 0x74], edx
lea eax, [edi + edx]
mov edx, dword [0x439634]
lea ebx, [edx + eax]
lea edi, [ebx + ecx]
lea edx, [edi + ecx]
mov dword [esp + 0x48], edx
mov edx, dword [0x43965c]
add eax, edx
mov dword [esp + 0x18], eax
add eax, ecx
mov dword [esp + 0x1c], eax
add eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x74]
lea edx, [eax + eax]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x70]
add edx, edx
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
mov dword [esp + 0x50], edx
movsx edx, bp
shl edx, 1
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
mov ebp, edx
mov dx, word [0x43a074]
sub dx, word [0x43964c]
mov dword [esp + 0x70], ebp
movsx edx, dx
add edx, 2
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
lea edx, [edx + edx*2]
movsx edx, dx
shl edx, 1
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, word [esp + 0x50]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x4c]
lea esi, [edx + esi*2]
sub esi, ebp
mov ebp, ecx
imul ebp, eax
add ebp, dword [0x439634]
mov dword [esp + 0x84], esi
movsx edx, dx
add ebp, edx
add ecx, ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x74]
cmp word [esp + 0x50], cx
jge 0x432482
movsx ecx, cx
sub ecx, eax
inc ecx
shr ecx, 1
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x70]
cmp cx, ax
jge 0x43242c
movsx eax, ax
movsx ecx, cx
sub eax, ecx
inc eax
shr eax, 1
mov dword [esp + 0x64], eax
mov cl, byte [ebx]
mov dl, byte [ebx + 1]
inc ebx
mov byte [esp + 0x2c], dl
mov dl, byte [edi]
inc ebx
mov byte [esp + 0x30], dl
mov byte [esp + 0x54], cl
mov al, byte [ebx]
inc ebx
inc edi
mov byte [esp + 0x3c], al
mov al, byte [edi]
mov dl, byte [edi + 1]
inc edi
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x48]
mov byte [esp + 0x34], dl
inc edi
mov dl, byte [eax]
inc eax
mov byte [esp + 0x40], dl
mov dword [esp + 0x68], edi
mov dl, byte [eax]
inc eax
mov byte [esp + 0x38], dl
mov dl, byte [eax]
inc eax
mov dword [esp + 0x48], eax
mov al, byte [0x43a08c]
cmp cl, al
mov byte [esp + 0x44], dl
jne 0x432116
cmp byte [esp + 0x2c], al
jne 0x432116
cmp byte [esp + 0x30], al
jne 0x432116
mov dl, byte [esp + 0x14]
mov byte [esp + 0x10], 1
cmp dl, al
je 0x43211b
mov byte [esp + 0x10], 0
cmp byte [esp + 0x2c], al
jne 0x43213a
cmp byte [esp + 0x3c], al
jne 0x43213a
cmp byte [esp + 0x14], al
jne 0x43213a
mov dl, byte [esp + 0x34]
mov byte [esp + 0x11], 1
cmp dl, al
je 0x43213f
mov byte [esp + 0x11], 0
cmp byte [esp + 0x30], al
jne 0x43215e
cmp byte [esp + 0x14], al
jne 0x43215e
cmp byte [esp + 0x40], al
jne 0x43215e
mov dl, byte [esp + 0x38]
mov byte [esp + 0x12], 1
cmp dl, al
je 0x432163
mov byte [esp + 0x12], 0
cmp byte [esp + 0x14], al
jne 0x432182
cmp byte [esp + 0x34], al
jne 0x432182
cmp byte [esp + 0x38], al
jne 0x432182
mov dl, byte [esp + 0x44]
mov byte [esp + 0x13], 1
cmp dl, al
je 0x432187
mov byte [esp + 0x13], 0
mov esi, dword [esp + 0x18]
cmp cl, al
jne 0x432195
mov cl, byte [esi]
mov byte [esp + 0x54], cl
cmp byte [esp + 0x2c], al
jne 0x4321a2
mov dl, byte [esi + 1]
mov byte [esp + 0x2c], dl
cmp byte [esp + 0x3c], al
jne 0x4321af
mov cl, byte [esi + 2]
mov byte [esp + 0x3c], cl
mov cl, byte [esp + 0x30]
mov esi, dword [esp + 0x1c]
cmp cl, al
jne 0x4321c1
mov dl, byte [esi]
mov byte [esp + 0x30], dl
cmp byte [esp + 0x14], al
jne 0x4321ce
mov cl, byte [esi + 1]
mov byte [esp + 0x14], cl
cmp byte [esp + 0x34], al
jne 0x4321db
mov dl, byte [esi + 2]
mov byte [esp + 0x34], dl
mov cl, byte [esp + 0x40]
mov esi, dword [esp + 0x20]
cmp cl, al
jne 0x4321ed
mov cl, byte [esi]
mov byte [esp + 0x40], cl
cmp byte [esp + 0x38], al
jne 0x4321fa
mov dl, byte [esi + 1]
mov byte [esp + 0x38], dl
cmp byte [esp + 0x44], al
jne 0x432207
mov al, byte [esi + 2]
mov byte [esp + 0x44], al
mov edx, dword [esp + 0x2c]
mov eax, dword [0x439604]
and edx, 0xff
mov ecx, dword [esp + 0x54]
and ecx, 0xff
mov edi, dword [eax + edx*4]
mov edx, dword [esp + 0x3c]
and edx, 0xff
mov ecx, dword [eax + ecx*4]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x30]
and edx, 0xff
mov edx, dword [eax + edx*4]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x14]
and edx, 0xff
mov esi, dword [eax + edx*4]
mov edx, dword [esp + 0x34]
and edx, 0xff
mov edx, dword [eax + edx*4]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x40]
and edx, 0xff
mov edx, dword [eax + edx*4]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x38]
and edx, 0xff
mov edx, dword [eax + edx*4]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x44]
and edx, 0xff
mov eax, dword [eax + edx*4]
mov dword [esp + 0x80], eax
mov al, byte [esp + 0x10]
test al, al
je 0x4322aa
mov byte [ebp], 0xd8
jmp 0x4322e5
mov edx, dword [esp + 0x58]
mov ebp, dword [0x439624]
lea eax, [edx + ecx*2]
add eax, edi
lea ecx, [esi + eax*2]
mov edx, ecx
shr edx, 0x10
mov al, byte [edx + ebp]
mov dl, 6
imul dl
xor edx, edx
mov dl, ch
and ecx, 0xff
add al, byte [edx + ebp]
mov dl, 6
imul dl
mov dl, byte [ecx + ebp]
mov ebp, dword [esp + 0x24]
add al, dl
mov byte [ebp], al
mov al, byte [esp + 0x11]
test al, al
je 0x4322f3
mov byte [ebp + 1], 0xd8
jmp 0x432330
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x24]
lea edx, [ecx + eax*2]
add edx, edi
mov edi, dword [0x439624]
lea ecx, [esi + edx*2]
mov dl, 6
mov eax, ecx
shr eax, 0x10
mov al, byte [eax + edi]
imul dl
xor edx, edx
mov dl, ch
and ecx, 0xff
add al, byte [edx + edi]
mov dl, 6
imul dl
add al, byte [ecx + edi]
mov byte [ebp + 1], al
mov al, byte [esp + 0x12]
test al, al
je 0x432341
mov ecx, dword [esp + 0x28]
mov byte [ecx], 0xd8
jmp 0x432387
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x24]
lea edx, [ecx + eax*2]
add edx, edi
mov edi, dword [0x439624]
lea ecx, [esi + edx*2]
mov dl, 6
mov eax, ecx
shr eax, 0x10
mov al, byte [eax + edi]
imul dl
xor edx, edx
mov dl, ch
and ecx, 0xff
add al, byte [edx + edi]
mov dl, 6
imul dl
mov dl, byte [ecx + edi]
mov ecx, dword [esp + 0x28]
add al, dl
mov byte [ecx], al
mov al, byte [esp + 0x13]
test al, al
je 0x432395
mov byte [ecx + 1], 0xd8
jmp 0x4323df
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x60]
mov ebp, dword [esp + 0x24]
lea edx, [eax + ecx*2]
add edx, edi
lea ecx, [esi + edx*2]
mov esi, dword [0x439624]
mov eax, ecx
mov dl, 6
shr eax, 0x10
mov al, byte [eax + esi]
imul dl
xor edx, edx
mov dl, ch
and ecx, 0xff
add al, byte [edx + esi]
mov dl, 6
imul dl
mov dl, byte [ecx + esi]
mov ecx, dword [esp + 0x28]
add al, dl
mov byte [ecx + 1], al
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov eax, 3
add esi, eax
add edx, eax
add edi, eax
mov eax, dword [esp + 0x64]
add ebp, 2
add ecx, 2
dec eax
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ecx
mov dword [esp + 0x64], eax
jne 0x4320a7
mov esi, dword [esp + 0x84]
jmp 0x432430
mov ecx, dword [esp + 0x28]
movsx eax, word [esp + 0x88]
mov edx, dword [esp + 0x18]
add ebx, eax
add edx, eax
add edi, eax
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
add edx, eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x20]
add edx, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x48]
add edx, eax
movsx eax, si
add ebp, eax
add ecx, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x48], edx
dec eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ecx
mov dword [esp + 0x6c], eax
jne 0x432087
mov eax, dword [0x439618]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x50]
lea edx, [ecx + eax]
mov ecx, dword [0x43964c]
add eax, edi
mov edi, dword [esp + 0x74]
add esi, ecx
add ecx, edi
mov word [0x43a084], ax
mov word [0x43a074], cx
sub ax, dx
mov word [0x43a080], si
sub cx, si
pop edi
pop esi
pop ebp
mov word [0x43a070], dx
mov word [0x439670], ax
mov word [0x439668], cx
pop ebx
add esp, 0x7c
ret
sub esp, 0x84
mov ax, word [0x43a070]
push ebx
mov ebx, dword [0x439618]
push ebp
sub ax, bx
push esi
movsx ecx, ax
mov eax, 0x55555556
push edi
imul ecx
mov ecx, edx
mov eax, 0x55555556
shr ecx, 0x1f
add edx, ecx
lea esi, [edx + edx*2]
mov dx, word [0x43a080]
sub dx, word [0x43964c]
movsx ecx, dx
imul ecx
mov cx, word [0x43a084]
mov eax, edx
sub cx, bx
shr eax, 0x1f
movsx ecx, cx
add edx, eax
add ecx, 2
mov eax, 0x55555556
lea edi, [edx + edx*2]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [0x439674]
mov ebp, eax
lea ecx, [edx + edx*2]
lea edx, [esi + eax*2]
add ebp, edx
mov dword [esp + 0x34], ecx
sub ebp, ecx
movsx ecx, ax
movsx edx, di
movsx eax, si
mov esi, ecx
mov dword [esp + 0x14], edx
imul esi, edx
mov edx, dword [0x439634]
mov dword [esp + 0x48], eax
add eax, esi
mov dword [esp + 0x88], ebp
lea ebx, [edx + eax]
mov edx, dword [0x43965c]
add eax, edx
mov dword [esp + 0x2c], eax
add eax, ecx
mov dword [esp + 0x28], eax
add eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
lea esi, [ebx + ecx]
lea edx, [eax + eax]
mov eax, 0x55555556
imul edx
mov eax, edx
lea edi, [esi + ecx]
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x14]
add edx, edx
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
mov dword [esp + 0x58], edx
movsx edx, word [esp + 0x34]
shl edx, 1
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
mov dword [esp + 0x34], edx
mov dx, word [0x43a074]
sub dx, word [0x43964c]
movsx edx, dx
add edx, 2
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
lea edx, [edx + edx*2]
movsx edx, dx
shl edx, 1
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [0x439674]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x40]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x34]
sub eax, edx
movsx edx, word [esp + 0x40]
mov dword [esp + 0x90], eax
mov dword [esp + 0x48], edx
movsx eax, word [esp + 0x58]
mov edx, ecx
mov dword [esp + 0x14], eax
imul edx, eax
mov eax, dword [0x439634]
add edx, eax
mov eax, dword [esp + 0x48]
add edx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1c], edx
add edx, ecx
cmp word [esp + 0x58], ax
mov dword [esp + 0x18], edx
jge 0x432ab7
movsx ecx, ax
sub ecx, dword [esp + 0x14]
inc ecx
shr ecx, 1
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x34]
cmp word [esp + 0x40], ax
jge 0x432a69
mov ebp, dword [esp + 0x48]
movsx eax, ax
sub eax, ebp
inc eax
shr eax, 1
mov dword [esp + 0x5c], eax
mov cl, byte [ebx]
mov dl, byte [ebx + 1]
inc ebx
mov byte [esp + 0x6c], cl
inc ebx
mov byte [esp + 0x50], dl
mov al, byte [ebx]
inc ebx
mov byte [esp + 0x54], al
mov al, byte [esi]
inc esi
mov byte [esp + 0x3c], al
mov dword [esp + 0x14], ebx
mov al, byte [esi]
inc esi
mov byte [esp + 0x20], al
mov al, byte [esi]
inc esi
mov byte [esp + 0x30], al
mov al, byte [edi]
inc edi
mov byte [esp + 0x4c], al
mov dword [esp + 0x68], esi
mov al, byte [edi]
inc edi
mov byte [esp + 0x38], al
mov al, byte [edi]
inc edi
mov byte [esp + 0x44], al
mov al, byte [0x43a08c]
cmp cl, al
mov dword [esp + 0x74], edi
jne 0x43271d
cmp dl, al
jne 0x43271d
cmp byte [esp + 0x3c], al
jne 0x43271d
mov dl, byte [esp + 0x20]
mov byte [esp + 0x10], 1
cmp dl, al
je 0x432722
mov byte [esp + 0x10], 0
cmp byte [esp + 0x50], al
jne 0x432741
cmp byte [esp + 0x54], al
jne 0x432741
cmp byte [esp + 0x20], al
jne 0x432741
mov dl, byte [esp + 0x30]
mov byte [esp + 0x11], 1
cmp dl, al
je 0x432746
mov byte [esp + 0x11], 0
cmp byte [esp + 0x3c], al
jne 0x432765
cmp byte [esp + 0x20], al
jne 0x432765
cmp byte [esp + 0x4c], al
jne 0x432765
mov dl, byte [esp + 0x38]
mov byte [esp + 0x12], 1
cmp dl, al
je 0x43276a
mov byte [esp + 0x12], 0
cmp byte [esp + 0x20], al
jne 0x432789
cmp byte [esp + 0x30], al
jne 0x432789
cmp byte [esp + 0x38], al
jne 0x432789
mov dl, byte [esp + 0x44]
mov byte [esp + 0x13], 1
cmp dl, al
je 0x43278e
mov byte [esp + 0x13], 0
mov esi, dword [esp + 0x2c]
cmp cl, al
jne 0x43279c
mov cl, byte [esi]
mov byte [esp + 0x6c], cl
cmp byte [esp + 0x50], al
jne 0x4327a9
mov dl, byte [esi + 1]
mov byte [esp + 0x50], dl
cmp byte [esp + 0x54], al
jne 0x4327b6
mov cl, byte [esi + 2]
mov byte [esp + 0x54], cl
mov cl, byte [esp + 0x3c]
mov esi, dword [esp + 0x28]
cmp cl, al
jne 0x4327c8
mov dl, byte [esi]
mov byte [esp + 0x3c], dl
cmp byte [esp + 0x20], al
jne 0x4327d5
mov cl, byte [esi + 1]
mov byte [esp + 0x20], cl
cmp byte [esp + 0x30], al
jne 0x4327e2
mov dl, byte [esi + 2]
mov byte [esp + 0x30], dl
mov cl, byte [esp + 0x4c]
mov esi, dword [esp + 0x24]
cmp cl, al
jne 0x4327f4
mov cl, byte [esi]
mov byte [esp + 0x4c], cl
cmp byte [esp + 0x38], al
jne 0x432801
mov dl, byte [esi + 1]
mov byte [esp + 0x38], dl
cmp byte [esp + 0x44], al
jne 0x43280e
mov al, byte [esi + 2]
mov byte [esp + 0x44], al
mov edx, dword [esp + 0x50]
mov eax, dword [0x4396b0]
and edx, 0xff
mov ecx, dword [esp + 0x6c]
and ecx, 0xff
mov edi, dword [eax + edx*4]
mov edx, dword [esp + 0x54]
and edx, 0xff
mov ecx, dword [eax + ecx*4]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x3c]
and edx, 0xff
mov ebp, dword [eax + edx*4]
mov edx, dword [esp + 0x20]
and edx, 0xff
mov dword [esp + 0x7c], ebp
mov esi, dword [eax + edx*4]
mov edx, dword [esp + 0x30]
and edx, 0xff
mov edx, dword [eax + edx*4]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x4c]
and edx, 0xff
mov edx, dword [eax + edx*4]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x38]
and edx, 0xff
mov edx, dword [eax + edx*4]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x44]
and edx, 0xff
mov eax, dword [eax + edx*4]
mov dword [esp + 0x80], eax
mov al, byte [esp + 0x10]
test al, al
je 0x4328ba
mov ecx, dword [esp + 0x1c]
mov byte [ecx], 0xd8
jmp 0x4328fb
lea edx, [ebp + ecx*2]
mov ebp, dword [0x439624]
add edx, edi
mov bl, 6
lea ecx, [esi + edx*2]
xor edx, edx
mov eax, ecx
mov dl, ch
shr eax, 0x10
mov dl, byte [edx + ebp]
and ecx, 0xff
mov al, byte [eax + ebp]
imul bl
add al, dl
mov dl, bl
imul dl
mov dl, byte [ecx + ebp]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x7c]
mov ebx, dword [esp + 0x14]
add al, dl
mov byte [ecx], al
mov al, byte [esp + 0x11]
test al, al
je 0x43290d
mov edx, dword [esp + 0x1c]
mov byte [edx + 1], 0xd8
jmp 0x432955
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x78]
mov bl, 6
lea edx, [ecx + eax*2]
add edx, edi
mov edi, dword [0x439624]
lea ecx, [esi + edx*2]
xor edx, edx
mov eax, ecx
mov dl, ch
shr eax, 0x10
mov dl, byte [edx + edi]
and ecx, 0xff
mov al, byte [eax + edi]
imul bl
add al, dl
mov dl, bl
imul dl
mov dl, byte [ecx + edi]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add al, dl
mov byte [ecx + 1], al
mov al, byte [esp + 0x12]
test al, al
je 0x432966
mov edx, dword [esp + 0x18]
mov byte [edx], 0xd8
jmp 0x4329ad
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x64]
mov edi, dword [0x439624]
mov bl, 6
lea edx, [ecx + eax*2]
add edx, ebp
lea ecx, [esi + edx*2]
xor edx, edx
mov eax, ecx
mov dl, ch
shr eax, 0x10
mov dl, byte [edx + edi]
and ecx, 0xff
mov al, byte [eax + edi]
imul bl
add al, dl
mov dl, bl
imul dl
mov dl, byte [ecx + edi]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
add al, dl
mov byte [ecx], al
mov al, byte [esp + 0x13]
test al, al
je 0x4329bf
mov edx, dword [esp + 0x18]
mov byte [edx + 1], 0xd8
jmp 0x432a0b
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x80]
mov bl, 6
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x78]
add edx, eax
lea ecx, [esi + edx*2]
mov esi, dword [0x439624]
mov eax, ecx
xor edx, edx
shr eax, 0x10
mov dl, ch
and ecx, 0xff
mov al, byte [eax + esi]
imul bl
mov dl, byte [edx + esi]
add al, dl
mov dl, bl
imul dl
mov dl, byte [ecx + esi]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
add al, dl
mov byte [ecx + 1], al
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov eax, 3
add ebp, eax
add edi, eax
add esi, eax
mov eax, 2
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x74]
dec eax
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x5c], eax
jne 0x4326b1
mov ebp, dword [esp + 0x88]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x2c]
movsx eax, bp
add edx, eax
add ebx, eax
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x28]
add edx, eax
add esi, eax
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x24]
add edx, eax
add edi, eax
movsx eax, word [esp + 0x90]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x1c]
add edx, eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x18]
add edx, eax
dec ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x70], ecx
jne 0x432692
mov eax, dword [0x439618]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x34]
mov ecx, dword [0x43964c]
mov esi, dword [esp + 0x58]
add edx, eax
add eax, edi
mov edi, dword [esp + 0x60]
add esi, ecx
add ecx, edi
mov word [0x43a084], ax
mov word [0x43a074], cx
sub ax, dx
mov word [0x43a080], si
sub cx, si
pop edi
pop esi
pop ebp
mov word [0x43a070], dx
mov word [0x439670], ax
mov word [0x439668], cx
pop ebx
add esp, 0x84
ret
xor eax, eax
mov ax, word [0x436138]
sub eax, 0
je 0x432b43
dec eax
jne 0x432b56
call fcn.00432b60
test al, al
je 0x432b3e
jmp 0x431ef0
jmp 0x4324e0
call fcn.00432b60
test al, al
je 0x432b51
jmp 0x4318e0
jmp 0x431bb0
ret