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

Disassembly:
mov dword [esp + 0x10], edx
push ebp
push ebx
push esi
push edi
inc ecx
push esp
inc ecx
push ebp
inc ecx
push esi
inc ecx
push edi
dec eax
mov ebp, esp
dec eax
sub esp, 0x58
inc ebp
xor ebx, ebx
mov ebx, edx
dec esp
mov esi, ecx
dec eax
test ecx, ecx
je 0x40841f
dec eax
mov edi, dword [ecx + 0x28]
dec eax
test edi, edi
je 0x40841f
dec esp
cmp dword [ecx + 0x10], ebx
je 0x40841f
dec esp
cmp dword [ecx], ebx
jne 0x408382
inc esp
cmp dword [ecx + 8], ebx
jne 0x40841f
mov eax, dword [edi]
inc esp
mov esp, dword [edi + 0x40]
mov esi, dword [edi + 0x44]
cmp eax, 0xb
mov ecx, 0xc
inc esp
mov dword [ebp + 0x48], ebx
cmove eax, ecx
mov dword [edi], eax
inc ebp
mov ecx, dword [esi + 0x18]
dec ebp
mov ebp, dword [esi]
inc ebp
mov edi, dword [esi + 8]
dec ebp
mov edx, dword [esi + 0x10]
dec esp
mov dword [ebp - 0x18], ebp
inc esp
mov dword [ebp - 0x20], edi
inc ebp
mov eax, ecx
inc esp
mov dword [ebp + 0x60], ecx
mov edx, 0x10
inc esp
mov dword [ebp + 0x58], ecx
dec esp
mov dword [ebp - 0x10], edx
mov eax, 7
mov ecx, dword [edi]
cmp ecx, 0xe
jg 0x408d07
je 0x408aa8
cmp ecx, eax
jg 0x408a18
je 0x4087a2
test ecx, ecx
je 0x40887f
dec ecx
je 0x408457
dec ecx
je 0x4084f7
dec ecx
je 0x40857d
dec ecx
je 0x4085db
dec ecx
je 0x4085fb
dec ecx
je 0x408709
mov eax, 0xfffffffe
dec eax
add esp, 0x58
inc ecx
pop edi
inc ecx
pop esi
inc ecx
pop ebp
inc ecx
pop esp
pop edi
pop esi
pop ebx
pop ebp
ret
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, edx
jb 0x408435
inc esp
mov dword [edi + 0x10], esp
inc ecx
cmp ah, 8
je 0x408471
dec eax
lea eax, [0x15364]
jmp 0x4089cc
inc ecx
test esp, 0xe000
je 0x408486
dec eax
lea eax, [0x1532f]
jmp 0x4089cc
dec eax
mov ecx, dword [edi + 0x20]
dec eax
test ecx, ecx
je 0x40849a
inc ecx
mov eax, esp
shr eax, 8
and eax, 1
mov dword [ecx], eax
test dword [edi + 0x10], 0x200
je 0x4084c7
inc esp
mov byte [ebp - 0x28], ah
inc ecx
shr esp, 8
dec eax
lea edx, [ebp - 0x28]
inc esp
mov byte [ebp - 0x27], ah
mov ecx, dword [edi + 0x18]
inc ecx
mov eax, 2
call fcn.0040a7c0
inc ebp
xor ebx, ebx
mov dword [edi + 0x18], eax
inc ebp
mov esp, ebx
inc ecx
mov esi, ebx
mov dword [edi], 2
jmp 0x4084f7
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, 0x20
jb 0x4084d5
dec eax
mov eax, dword [edi + 0x20]
dec eax
test eax, eax
je 0x408509
inc esp
mov dword [eax + 4], esp
test dword [edi + 0x10], 0x200
je 0x408548
inc ecx
mov eax, esp
inc esp
mov byte [ebp - 0x28], ah
dec eax
lea edx, [ebp - 0x28]
shr eax, 8
inc ecx
mov eax, 4
mov byte [ebp - 0x27], al
inc ecx
mov eax, esp
inc ecx
shr esp, 0x18
shr eax, 0x10
inc esp
mov byte [ebp - 0x25], ah
mov byte [ebp - 0x26], al
mov ecx, dword [edi + 0x18]
call fcn.0040a7c0
inc ebp
xor ebx, ebx
mov dword [edi + 0x18], eax
inc ebp
mov esp, ebx
inc ecx
mov esi, ebx
mov dword [edi], 3
mov edx, 0x10
jmp 0x40857d
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, edx
jb 0x40855b
dec eax
mov ecx, dword [edi + 0x20]
dec eax
test ecx, ecx
je 0x40859e
inc ecx
movzx eax, ah
mov dword [ecx + 8], eax
dec eax
mov eax, dword [edi + 0x20]
inc ecx
mov ecx, esp
shr ecx, 8
mov dword [eax + 0xc], ecx
test dword [edi + 0x10], 0x200
je 0x4085cf
inc esp
mov byte [ebp - 0x28], ah
inc ecx
shr esp, 8
dec eax
lea edx, [ebp - 0x28]
inc esp
mov byte [ebp - 0x27], ah
mov ecx, dword [edi + 0x18]
inc ecx
mov eax, 2
call fcn.0040a7c0
inc ebp
xor ebx, ebx
mov dword [edi + 0x18], eax
inc ecx
lea edx, [ebx + 0x10]
inc ebp
mov esp, ebx
inc ecx
mov esi, ebx
mov dword [edi], 4
test dword [edi + 0x10], 0x400
jne 0x40866a
dec eax
mov eax, dword [edi + 0x20]
dec eax
test eax, eax
je 0x4085f5
dec esp
mov dword [eax + 0x10], ebx
mov dword [edi], 5
test dword [edi + 0x10], 0x400
je 0x4086ff
mov ebx, dword [edi + 0x48]
inc ecx
cmp ebx, edi
inc ecx
cmova ebx, edi
test ebx, ebx
je 0x4086f5
dec eax
mov eax, dword [edi + 0x20]
dec eax
test eax, eax
je 0x4086c9
dec esp
mov ecx, dword [eax + 0x10]
dec ebp
test ecx, ecx
je 0x4086c9
mov edx, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
sub edx, dword [edi + 0x48]
lea eax, [ebx + edx]
cmp eax, ecx
jbe 0x4086b7
sub ecx, edx
jmp 0x4086b9
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, edx
jb 0x408648
dec eax
mov eax, dword [edi + 0x20]
inc esp
mov dword [edi + 0x48], esp
dec eax
test eax, eax
je 0x40867f
inc esp
mov dword [eax + 0x18], esp
test dword [edi + 0x10], 0x200
je 0x4086ac
inc esp
mov byte [ebp - 0x28], ah
inc ecx
shr esp, 8
dec eax
lea edx, [ebp - 0x28]
inc esp
mov byte [ebp - 0x27], ah
mov ecx, dword [edi + 0x18]
inc ecx
mov eax, 2
call fcn.0040a7c0
inc ebp
xor ebx, ebx
mov dword [edi + 0x18], eax
inc ebp
mov esp, ebx
inc ecx
mov esi, ebx
jmp 0x4085f5
mov ecx, ebx
inc esp
mov eax, ecx
mov ecx, edx
dec ecx
mov edx, ebp
dec ecx
add ecx, ecx
call fcn.0040b0a0
test dword [edi + 0x10], 0x200
je 0x4086e3
mov ecx, dword [edi + 0x18]
inc esp
mov eax, ebx
dec ecx
mov edx, ebp
call fcn.0040a7c0
mov dword [edi + 0x18], eax
sub dword [edi + 0x48], ebx
mov eax, ebx
inc esp
sub edi, ebx
dec esp
add ebp, eax
inc ebp
xor ebx, ebx
dec esp
mov dword [ebp - 0x18], ebp
inc esp
cmp dword [edi + 0x48], ebx
jne 0x40881e
inc esp
mov dword [edi + 0x48], ebx
mov dword [edi], 6
test dword [edi + 0x10], 0x800
je 0x40878b
inc ebp
test edi, edi
je 0x40881e
inc ecx
mov ebx, ebx
dec ebp
mov eax, ebp
dec eax
mov eax, dword [edi + 0x20]
inc ebp
movzx ebp, byte [eax]
inc ebx
dec ecx
inc eax
dec eax
test eax, eax
je 0x40874b
dec eax
mov edx, dword [eax + 0x20]
dec eax
test edx, edx
je 0x40874b
mov ecx, dword [edi + 0x48]
cmp ecx, dword [eax + 0x28]
jae 0x40874b
inc esp
mov byte [ecx + edx], ch
inc dword [edi + 0x48]
inc ebp
test ebp, ebp
je 0x408755
inc ecx
cmp ebx, edi
jb 0x408721
test dword [edi + 0x10], 0x200
je 0x408773
dec eax
mov edx, dword [ebp - 0x18]
mov ecx, dword [edi + 0x18]
inc esp
mov eax, ebx
call fcn.0040a7c0
inc ebp
xor ebx, ebx
mov dword [edi + 0x18], eax
mov eax, ebx
inc esp
sub edi, ebx
dec eax
add dword [ebp - 0x18], eax
inc ebp
test ebp, ebp
jne 0x40881e
dec esp
mov ebp, dword [ebp - 0x18]
jmp 0x408798
dec eax
mov eax, dword [edi + 0x20]
dec eax
test eax, eax
je 0x408798
dec esp
mov dword [eax + 0x20], ebx
inc esp
mov dword [edi + 0x48], ebx
mov dword [edi], 7
test dword [edi + 0x10], 0x1000
je 0x4089db
inc ebp
test edi, edi
je 0x40881e
inc ecx
mov ebx, ebx
dec ebp
mov eax, ebp
dec eax
mov eax, dword [edi + 0x20]
inc ebp
movzx ebp, byte [eax]
inc ebx
dec ecx
inc eax
dec eax
test eax, eax
je 0x4087e4
dec eax
mov edx, dword [eax + 0x30]
dec eax
test edx, edx
je 0x4087e4
mov ecx, dword [edi + 0x48]
cmp ecx, dword [eax + 0x38]
jae 0x4087e4
inc esp
mov byte [ecx + edx], ch
inc dword [edi + 0x48]
inc ebp
test ebp, ebp
je 0x4087ee
inc ecx
cmp ebx, edi
jb 0x4087ba
test dword [edi + 0x10], 0x200
je 0x40880c
dec eax
mov edx, dword [ebp - 0x18]
mov ecx, dword [edi + 0x18]
inc esp
mov eax, ebx
call fcn.0040a7c0
inc ebp
xor ebx, ebx
mov dword [edi + 0x18], eax
mov eax, ebx
inc esp
sub edi, ebx
dec eax
add dword [ebp - 0x18], eax
inc ebp
test ebp, ebp
je 0x4089e8
inc esp
mov ebp, dword [ebp + 0x48]
dec eax
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp + 0x60]
inc ebp
mov dword [esi + 8], edi
dec ecx
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0x58]
inc ecx
mov dword [esi + 0x18], eax
dec eax
mov eax, dword [ebp - 0x18]
dec ecx
mov dword [esi], eax
inc esp
mov dword [edi + 0x40], esp
inc ebp
xor esp, esp
mov dword [edi + 0x44], esi
inc esp
cmp dword [edi + 0x2c], esp
jne 0x408862
cmp dword [edi], 0x18
jge 0x409827
inc ecx
cmp ebx, dword [esi + 0x18]
je 0x409827
mov edx, ebx
dec ecx
mov ecx, esi
call fcn.00408238
test eax, eax
je 0x409827
mov dword [edi], 0x1c
jmp 0x4096a0
inc esp
cmp dword [edi + 8], ebx
jne 0x4088ae
mov dword [edi], 0xc
jmp 0x4083c7
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, edx
jb 0x408890
test byte [edi + 8], 2
je 0x40890f
inc ecx
cmp esp, 0x8b1f
jne 0x40890f
inc ebp
xor eax, eax
xor edx, edx
xor ecx, ecx
call fcn.0040a7c0
dec eax
lea edx, [ebp - 0x28]
inc ecx
mov eax, 2
mov dword [edi + 0x18], eax
inc sp
mov dword [ebp - 0x28], esp
mov ecx, dword [edi + 0x18]
call fcn.0040a7c0
mov dword [edi], 1
mov dword [edi + 0x18], eax
inc ebp
xor ebx, ebx
inc ecx
mov esi, ebx
inc ebp
mov esp, ebx
dec esp
mov edx, dword [ebp - 0x10]
inc esp
mov eax, dword [ebp + 0x60]
inc esp
mov ecx, dword [ebp + 0x58]
mov edx, 0x10
jmp 0x4083c7
dec eax
mov eax, dword [edi + 0x20]
inc esp
mov dword [edi + 0x10], ebx
dec eax
test eax, eax
je 0x408920
or dword [eax + 0x40], 0xffffffff
test byte [edi + 8], 1
je 0x4089c5
inc ecx
movzx ecx, ah
inc ecx
mov eax, esp
shr eax, 8
shl ecx, 8
add ecx, eax
mov eax, 0x8421085
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x1f
cmp ecx, eax
jne 0x4089c0
inc ecx
mov eax, esp
and al, 0xf
cmp al, 8
je 0x40896e
dec eax
lea eax, [0x14e6e]
dec ecx
mov dword [esi + 0x20], eax
mov dword [edi], 0x1b
jmp 0x408905
inc ecx
shr esp, 4
add esi, 0xfffffffc
inc ecx
mov ecx, esp
and ecx, 0xf
add ecx, 8
cmp ecx, dword [edi + 0x28]
jbe 0x40898c
dec eax
lea eax, [0x14e0e]
jmp 0x408962
mov eax, 1
inc ebp
xor eax, eax
xor edx, edx
shl eax, cl
xor ecx, ecx
mov dword [edi + 0x14], eax
call fcn.0040a1e0
inc ecx
shr esp, 8
inc ecx
not esp
mov dword [edi + 0x18], eax
inc ecx
mov dword [esi + 0x4c], eax
inc ecx
and esp, 2
inc ecx
or esp, 9
inc esp
mov dword [edi], esp
jmp 0x4088f0
mov edx, 0x10
dec eax
lea eax, [0x14db4]
dec ecx
mov dword [esi + 0x20], eax
mov dword [edi], 0x1b
jmp 0x4083c7
dec eax
mov eax, dword [edi + 0x20]
dec eax
test eax, eax
je 0x4089e8
dec esp
mov dword [eax + 0x30], ebx
dec esp
mov ebp, dword [ebp - 0x18]
inc esp
mov eax, dword [ebp + 0x60]
inc esp
mov ecx, dword [ebp + 0x58]
dec esp
mov edx, dword [ebp - 0x10]
mov ebx, dword [ebp + 0x50]
mov dword [edi], 8
mov edx, 0x10
test dword [edi + 0x10], 0x200
je 0x408cab
jmp 0x408c8c
sub ecx, 8
je 0x408a06
dec ecx
je 0x408b2c
dec ecx
je 0x408b6a
dec ecx
je 0x408ba0
dec ecx
je 0x408ba9
dec ecx
jne 0x40841f
mov ecx, esi
and ecx, 7
inc ecx
shr esp, cl
sub esi, ecx
jmp 0x408a73
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, 0x20
jb 0x408a51
inc ecx
mov eax, esp
inc ecx
movzx ecx, sp
not eax
shr eax, 0x10
cmp ecx, eax
je 0x408a94
dec eax
lea eax, [0x14cd1]
jmp 0x4089cc
mov dword [edi + 0x48], ecx
inc ebp
mov esp, ebx
inc ecx
mov esi, ebx
mov dword [edi], 0xe
mov eax, 7
inc esp
mov ebp, dword [edi + 0x48]
inc ebp
test ebp, ebp
je 0x408cf8
inc ebp
cmp ebp, edi
inc ebp
cmova ebp, edi
inc ebp
cmp ebp, ecx
inc ebp
cmova ebp, ecx
inc ebp
test ebp, ebp
je 0x40881e
dec eax
mov edx, dword [ebp - 0x18]
inc ebp
mov eax, ebp
dec ecx
mov ecx, edx
inc ecx
mov ebx, ebp
call fcn.0040b0a0
dec eax
add dword [ebp - 0x18], ebx
inc esp
mov ecx, dword [ebp + 0x58]
dec esp
mov edx, dword [ebp - 0x10]
inc ebp
sub edi, ebp
inc ebp
sub ecx, ebp
dec esp
add edx, ebx
inc esp
sub dword [edi + 0x48], ebp
dec esp
mov ebp, dword [ebp - 0x18]
mov ebx, dword [ebp + 0x50]
inc esp
mov eax, dword [ebp + 0x60]
inc ebp
xor ebx, ebx
jmp 0x4083ba
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, 0x20
jb 0x408b0a
inc ecx
mov ecx, esp
inc ecx
mov eax, esp
mov edx, 0xff00
shl eax, 0x10
and ecx, edx
inc ecx
mov esi, ebx
add ecx, eax
inc ecx
mov eax, esp
inc ecx
shr esp, 0x18
shr eax, 8
shl ecx, 8
and eax, edx
add eax, ecx
inc ecx
add eax, esp
inc ebp
mov esp, ebx
mov dword [edi + 0x18], eax
inc ecx
mov dword [esi + 0x4c], eax
mov dword [edi], 0xa
inc esp
cmp dword [edi + 0xc], ebx
je 0x4097e5
inc ebp
xor eax, eax
xor edx, edx
xor ecx, ecx
call fcn.0040a1e0
inc esp
mov eax, dword [ebp + 0x60]
inc esp
mov ecx, dword [ebp + 0x58]
dec esp
mov edx, dword [ebp - 0x10]
inc ebp
xor ebx, ebx
mov dword [edi + 0x18], eax
inc ecx
mov dword [esi + 0x4c], eax
mov dword [edi], 0xb
inc ecx
lea edx, [ebx + 0x10]
cmp ebx, 5
je 0x40881e
inc esp
cmp dword [edi + 4], ebx
je 0x408bea
mov ecx, esi
mov eax, 7
mov dword [edi], 0x18
and ecx, eax
inc ecx
shr esp, cl
sub esi, ecx
jmp 0x4083cc
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, 3
jb 0x408bc8
inc ecx
mov eax, esp
inc ecx
shr esp, 1
dec esi
and eax, 1
mov dword [edi + 4], eax
inc ecx
mov eax, esp
and eax, 3
je 0x408c58
dec eax
je 0x408c2c
dec eax
je 0x408c24
dec eax
jne 0x408c5e
dec eax
lea eax, [0x14b30]
dec ecx
mov dword [esi + 0x20], eax
mov dword [edi], 0x1b
jmp 0x408c5e
mov dword [edi], 0xf
jmp 0x408c5e
dec eax
lea eax, [0x1412d]
mov dword [edi + 0x68], 9
mov dword [edi + 0x6c], 5
dec eax
mov dword [edi + 0x58], eax
dec eax
lea eax, [0x14914]
mov dword [edi], 0x12
dec eax
mov dword [edi + 0x60], eax
jmp 0x408c5e
mov dword [edi], 0xd
inc ecx
shr esp, 2
add esi, 0xfffffffe
jmp 0x4083c7
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, edx
jb 0x408c6a
movzx eax, word [edi + 0x18]
inc esp
cmp esp, eax
je 0x408ca5
dec eax
lea eax, [0x14a90]
jmp 0x4089cc
inc ebp
mov esp, ebx
inc ecx
mov esi, ebx
dec eax
mov ecx, dword [edi + 0x20]
dec eax
test ecx, ecx
je 0x408ccb
mov eax, dword [edi + 0x10]
sar eax, 9
and eax, 1
mov dword [ecx + 0x3c], eax
dec eax
mov eax, dword [edi + 0x20]
mov dword [eax + 0x40], 1
inc ebp
xor eax, eax
xor edx, edx
xor ecx, ecx
call fcn.0040a7c0
inc esp
mov eax, dword [ebp + 0x60]
inc esp
mov ecx, dword [ebp + 0x58]
dec esp
mov edx, dword [ebp - 0x10]
mov dword [edi + 0x18], eax
inc ecx
mov dword [esi + 0x4c], eax
mov dword [edi], 0xb
inc ebp
xor ebx, ebx
jmp 0x408905
dec esp
mov ebp, dword [ebp - 0x18]
mov dword [edi], 0xb
jmp 0x4083cc
cmp ecx, 0x16
jg 0x409673
je 0x4095e0
sub ecx, 0xf
je 0x408d72
dec ecx
je 0x408dcb
dec ecx
je 0x408ec2
dec ecx
je 0x4091e9
dec ecx
je 0x4093be
dec ecx
je 0x40940c
dec ecx
jne 0x40841f
jmp 0x409578
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, 0xe
jb 0x408d50
inc ecx
mov ecx, esp
inc ecx
shr esp, 5
add esi, 0xfffffff2
inc ecx
mov edx, esp
inc ecx
shr esp, 5
and ecx, 0x1f
inc ecx
mov eax, esp
and edx, 0x1f
add ecx, 0x101
and eax, 0xf
inc edx
inc ecx
shr esp, 4
add eax, 4
mov dword [edi + 0x74], ecx
mov dword [edi + 0x78], edx
mov dword [edi + 0x70], eax
cmp ecx, 0x11e
ja 0x409608
cmp edx, 0x1e
ja 0x409608
inc esp
mov dword [edi + 0x7c], ebx
mov dword [edi], 0x10
mov edx, 7
dec esp
lea eax, [0x14809]
mov eax, dword [edi + 0x70]
cmp dword [edi + 0x7c], eax
jae 0x408e3f
jmp 0x408e03
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, 3
jb 0x408de1
mov eax, dword [edi + 0x7c]
inc ecx
movzx ecx, sp
inc ecx
shr esp, 3
inc ecx
movzx eax, word [eax + eax*2]
and cx, dx
mov word [edi + eax*2 + 0x88], cx
inc dword [edi + 0x7c]
add esi, 0xfffffffd
jmp 0x408dd7
mov eax, dword [edi + 0x7c]
inc ecx
movzx ecx, word [eax + eax*2]
inc sp
mov dword [edi + ecx*2 + 0x88], ebx
inc dword [edi + 0x7c]
cmp dword [edi + 0x7c], 0x13
jb 0x408e2b
dec eax
lea ecx, [edi + 0x68]
dec eax
lea eax, [edi + 0x548]
dec esp
lea ecx, [edi + 0x80]
mov dword [ecx], edx
dec ecx
mov dword [ecx], eax
dec eax
mov dword [edi + 0x58], eax
dec eax
lea eax, [edi + 0x308]
dec eax
lea edx, [edi + 0x88]
dec eax
mov dword [esp + 0x28], eax
dec eax
mov dword [esp + 0x20], ecx
xor ecx, ecx
inc esp
lea eax, [ecx + 0x13]
call fcn.00409d78
dec esp
mov edx, dword [ebp - 0x10]
inc ebp
xor ebx, ebx
mov dword [ebp + 0x48], eax
inc ecx
lea edx, [ebx + 0x10]
test eax, eax
je 0x408eb3
inc esp
mov eax, dword [ebp + 0x60]
inc esp
mov ecx, dword [ebp + 0x58]
dec eax
lea eax, [0x1486c]
dec ecx
mov dword [esi + 0x20], eax
mov dword [edi], 0x1b
jmp 0x4083c7
inc ecx
mov eax, 0x11
inc esp
mov dword [edi + 0x7c], ebx
inc esp
mov dword [edi], eax
jmp 0x408ec8
inc ecx
mov eax, 0x11
mov eax, dword [edi + 0x78]
add eax, dword [edi + 0x74]
cmp dword [edi + 0x7c], eax
jae 0x4090f2
jmp 0x408efb
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
mov ecx, dword [edi + 0x68]
mov eax, 1
shl eax, cl
lea ecx, [eax - 1]
inc ecx
mov eax, esp
dec eax
and ecx, eax
dec eax
mov eax, dword [edi + 0x58]
mov eax, dword [eax + ecx*4]
mov ecx, eax
mov dword [ebp - 0x24], eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x408ed9
mov ecx, eax
shr ecx, 0x10
cmp cx, dx
jae 0x408f82
shr eax, 8
movzx ecx, al
cmp esi, ecx
jae 0x408f62
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
add esi, 8
inc ecx
dec edi
inc esp
add esp, eax
movzx eax, byte [ebp - 0x23]
dec esp
mov dword [ebp - 0x18], ebp
cmp esi, eax
jb 0x408f38
movzx ecx, byte [ebp - 0x23]
movzx eax, word [ebp - 0x22]
inc ecx
shr esp, cl
sub esi, ecx
mov ecx, dword [edi + 0x7c]
mov word [edi + ecx*2 + 0x88], ax
inc dword [edi + 0x7c]
jmp 0x4090b5
cmp word [ebp - 0x22], dx
jne 0x408feb
movzx edx, byte [ebp - 0x23]
inc esp
lea eax, [edx + 2]
jmp 0x408fb4
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
inc ecx
cmp esi, eax
jb 0x408f92
mov eax, dword [edi + 0x7c]
mov ecx, edx
sub esi, edx
inc ecx
shr esp, cl
test eax, eax
je 0x4090cb
inc ecx
mov edx, esp
dec eax
inc ecx
shr esp, 2
inc esp
movzx ecx, word [edi + eax*2 + 0x88]
and edx, 3
add edx, 3
add esi, 0xfffffffe
jmp 0x409089
inc sp
cmp dword [ebp - 0x22], eax
inc esp
movzx eax, byte [ebp - 0x23]
jne 0x40903d
inc ecx
lea edx, [eax + 3]
jmp 0x40901f
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, edx
jb 0x408ffd
inc ecx
mov ecx, eax
mov eax, 0xfffffffd
inc ecx
shr esp, cl
inc ecx
mov edx, esp
and edx, 7
add edx, 3
inc ecx
shr esp, 3
jmp 0x409081
inc ecx
lea edx, [eax + 7]
jmp 0x409065
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, edx
jb 0x409043
inc ecx
mov ecx, eax
mov eax, 0xfffffff9
inc ecx
shr esp, cl
inc ecx
mov edx, esp
and edx, 0x7f
add edx, 0xb
inc ecx
shr esp, 7
inc ecx
sub eax, eax
inc ebp
mov ecx, ebx
add esi, eax
mov eax, dword [edi + 0x7c]
lea ecx, [edx + eax]
mov eax, dword [edi + 0x78]
add eax, dword [edi + 0x74]
cmp ecx, eax
ja 0x4090e1
test edx, edx
je 0x4090b0
mov eax, dword [edi + 0x7c]
inc sp
mov dword [edi + eax*2 + 0x88], ecx
inc dword [edi + 0x7c]
dec edx
jne 0x40909d
mov edx, 0x10
mov eax, dword [edi + 0x78]
add eax, dword [edi + 0x74]
cmp dword [edi + 0x7c], eax
jae 0x4090f2
inc ecx
mov eax, 0x11
jmp 0x408efb
dec eax
lea eax, [0x1461e]
dec ecx
mov dword [esi + 0x20], eax
mov dword [edi], 0x1b
jmp 0x4088fd
dec eax
lea eax, [0x14608]
dec ecx
mov dword [esi + 0x20], eax
mov dword [edi], 0x1b
cmp dword [edi], 0x1b
inc esp
mov eax, dword [ebp + 0x60]
inc esp
mov ecx, dword [ebp + 0x58]
mov edx, 0x10
lea eax, [edx - 9]
je 0x4083cc
inc esp
mov eax, dword [edi + 0x74]
dec eax
lea eax, [edi + 0x548]
dec esp
lea ebp, [edi + 0x308]
dec eax
mov dword [edi + 0x80], eax
dec eax
mov dword [edi + 0x58], eax
dec eax
lea eax, [edi + 0x68]
dec eax
lea edx, [edi + 0x88]
dec esp
lea ecx, [edi + 0x80]
mov ecx, 1
dec esp
mov dword [esp + 0x28], ebp
mov dword [eax], 9
dec eax
mov dword [esp + 0x20], eax
call fcn.00409d78
inc ebp
xor ebx, ebx
mov dword [ebp + 0x48], eax
test eax, eax
je 0x40917b
dec esp
mov ebp, dword [ebp - 0x18]
mov ebx, dword [ebp + 0x50]
dec eax
lea eax, [0x14564]
dec ecx
mov dword [esi + 0x20], eax
mov dword [edi], 0x1b
jmp 0x4088f9
dec eax
mov eax, dword [edi + 0x80]
inc esp
mov eax, dword [edi + 0x78]
dec eax
lea ecx, [edi + 0x6c]
dec eax
mov dword [edi + 0x60], eax
mov eax, dword [edi + 0x74]
mov dword [ecx], 6
dec esp
mov dword [esp + 0x28], ebp
dec eax
mov dword [esp + 0x20], ecx
dec esp
lea ecx, [edi + 0x80]
dec eax
lea edx, [edi + eax*2 + 0x88]
mov ecx, 2
call fcn.00409d78
dec esp
mov ebp, dword [ebp - 0x18]
inc esp
mov eax, dword [ebp + 0x60]
inc esp
mov ecx, dword [ebp + 0x58]
dec esp
mov edx, dword [ebp - 0x10]
mov ebx, dword [ebp + 0x50]
inc ebp
xor ebx, ebx
mov dword [ebp + 0x48], eax
test eax, eax
je 0x4091e3
dec eax
lea eax, [0x144da]
jmp 0x408962
mov dword [edi], 0x12
inc ecx
cmp edi, 6
jb 0x409238
inc ecx
cmp ecx, 0x102
jb 0x409238
dec ebp
mov dword [esi + 0x10], edx
inc ebp
mov dword [esi + 0x18], ecx
dec ebp
mov dword [esi], ebp
inc ebp
mov dword [esi + 8], edi
inc ecx
mov edx, eax
dec ecx
mov ecx, esi
inc esp
mov dword [edi + 0x40], esp
mov dword [edi + 0x44], esi
call fcn.00409918
dec ebp
mov ebp, dword [esi]
dec ebp
mov edx, dword [esi + 0x10]
inc ebp
mov ecx, dword [esi + 0x18]
inc ebp
mov edi, dword [esi + 8]
inc esp
mov esp, dword [edi + 0x40]
mov esi, dword [edi + 0x44]
dec esp
mov dword [ebp - 0x18], ebp
jmp 0x408afe
mov ecx, dword [edi + 0x68]
dec esp
mov ebx, dword [edi + 0x58]
mov eax, 1
shl eax, cl
lea ecx, [eax - 1]
inc ecx
mov eax, esp
dec eax
and ecx, eax
inc ecx
mov eax, dword [ebx + ecx*4]
jmp 0x409291
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
mov ecx, dword [edi + 0x68]
inc ecx
dec edi
inc esp
add esp, eax
mov eax, 1
add esi, 8
shl eax, cl
dec esp
mov dword [ebp - 0x18], ebp
lea ecx, [eax - 1]
inc ecx
mov eax, esp
dec eax
and ecx, eax
dec eax
mov eax, dword [edi + 0x58]
mov eax, dword [eax + ecx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x409255
test al, al
je 0x40935f
test al, 0xf0
jne 0x40935f
inc esp
mov edx, eax
movzx ecx, al
inc ecx
mov ecx, 1
inc ecx
shr edx, 8
mov edx, eax
mov dword [ebp - 0x24], eax
inc ebp
movzx eax, dl
shr eax, 0x10
inc ecx
add ecx, eax
inc ecx
shl ecx, cl
inc ecx
mov ecx, eax
inc ecx
dec ecx
inc ebp
and ecx, esp
inc ecx
shr ecx, cl
inc esp
add ecx, eax
inc ebx
mov eax, dword [ebx + ecx*4]
mov ecx, eax
shr ecx, 8
inc esp
movzx eax, cl
inc ecx
movzx ecx, dl
inc esp
add eax, ecx
jmp 0x409351
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
inc esp
movzx ecx, byte [ebp - 0x23]
mov ecx, esi
shl eax, cl
inc ecx
mov eax, 1
movzx ecx, dl
inc ecx
add ecx, ecx
inc esp
add esp, eax
movzx eax, word [ebp - 0x22]
inc ecx
shl eax, cl
inc ecx
mov ecx, ecx
dec ecx
inc ebp
inc ecx
dec eax
inc ecx
dec edi
add esi, 8
inc ebp
and eax, esp
dec esp
mov dword [ebp - 0x18], ebp
inc ecx
shr eax, cl
inc esp
add eax, eax
dec eax
mov eax, dword [edi + 0x58]
inc edx
mov eax, dword [eax + eax*4]
mov ecx, eax
shr ecx, 8
inc esp
movzx eax, cl
inc ebp
add eax, ecx
inc esp
cmp eax, esi
ja 0x4092f4
movzx ecx, byte [ebp - 0x23]
inc ecx
shr esp, cl
sub esi, ecx
mov ecx, eax
inc ebp
xor ebx, ebx
shr ecx, 8
movzx ecx, cl
inc ecx
shr esp, cl
sub esi, ecx
mov ecx, eax
shr ecx, 0x10
mov dword [edi + 0x48], ecx
test al, al
jne 0x409386
mov dword [edi], 0x17
jmp 0x4088f9
test al, 0x20
je 0x409395
mov dword [edi], 0xb
jmp 0x4088f9
test al, 0x40
je 0x4093af
dec eax
lea eax, [0x142f8]
dec ecx
mov dword [esi + 0x20], eax
mov dword [edi], 0x1b
jmp 0x4088f9
movzx ecx, al
mov dword [edi], 0x13
and ecx, 0xf
mov dword [edi + 0x50], ecx
mov edx, dword [edi + 0x50]
test edx, edx
je 0x409406
cmp esi, edx
jae 0x4093f0
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
add esi, 8
inc ecx
dec edi
inc esp
add esp, eax
dec esp
mov dword [ebp - 0x18], ebp
cmp esi, dword [edi + 0x50]
jb 0x4093c9
mov ecx, edx
mov eax, 1
shl eax, cl
dec eax
inc ecx
and eax, esp
inc ecx
shr esp, cl
add dword [edi + 0x48], eax
sub esi, edx
mov dword [edi], 0x14
mov ecx, dword [edi + 0x6c]
dec esp
mov ebx, dword [edi + 0x60]
mov eax, 1
shl eax, cl
lea ecx, [eax - 1]
inc ecx
mov eax, esp
dec eax
and ecx, eax
inc ecx
mov eax, dword [ebx + ecx*4]
jmp 0x409465
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
mov ecx, dword [edi + 0x6c]
inc ecx
dec edi
inc esp
add esp, eax
mov eax, 1
add esi, 8
shl eax, cl
dec esp
mov dword [ebp - 0x18], ebp
lea ecx, [eax - 1]
inc ecx
mov eax, esp
dec eax
and ecx, eax
dec eax
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x409429
test al, 0xf0
jne 0x40952b
inc esp
mov edx, eax
movzx ecx, al
inc ecx
mov ecx, 1
inc ecx
shr edx, 8
mov edx, eax
mov dword [ebp - 0x24], eax
inc ebp
movzx eax, dl
shr eax, 0x10
inc ecx
add ecx, eax
inc ecx
shl ecx, cl
inc ecx
mov ecx, eax
inc ecx
dec ecx
inc ebp
and ecx, esp
inc ecx
shr ecx, cl
inc esp
add ecx, eax
inc ebx
mov eax, dword [ebx + ecx*4]
mov ecx, eax
shr ecx, 8
inc esp
movzx eax, cl
inc ecx
movzx ecx, dl
inc esp
add eax, ecx
jmp 0x40951d
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
inc esp
movzx ecx, byte [ebp - 0x23]
mov ecx, esi
shl eax, cl
inc ecx
mov eax, 1
movzx ecx, dl
inc ecx
add ecx, ecx
inc esp
add esp, eax
movzx eax, word [ebp - 0x22]
inc ecx
shl eax, cl
inc ecx
mov ecx, ecx
dec ecx
inc ebp
inc ecx
dec eax
inc ecx
dec edi
add esi, 8
inc ebp
and eax, esp
dec esp
mov dword [ebp - 0x18], ebp
inc ecx
shr eax, cl
inc esp
add eax, eax
dec eax
mov eax, dword [edi + 0x60]
inc edx
mov eax, dword [eax + eax*4]
mov ecx, eax
shr ecx, 8
inc esp
movzx eax, cl
inc ebp
add eax, ecx
inc esp
cmp eax, esi
ja 0x4094c0
movzx ecx, byte [ebp - 0x23]
inc ecx
shr esp, cl
sub esi, ecx
inc esp
mov eax, dword [ebp + 0x60]
inc esp
mov ecx, dword [ebp + 0x58]
dec esp
mov edx, dword [ebp - 0x10]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
inc ecx
shr esp, cl
sub esi, ecx
test al, 0x40
je 0x40955e
dec eax
lea eax, [0x14131]
dec ecx
mov dword [esi + 0x20], eax
mov dword [edi], 0x1b
jmp 0x408cf0
mov ecx, eax
mov dword [edi], 0x15
shr ecx, 0x10
mov dword [edi + 0x4c], ecx
movzx ecx, al
and ecx, 0xf
inc ebp
xor ebx, ebx
mov dword [edi + 0x50], ecx
mov edx, dword [edi + 0x50]
test edx, edx
je 0x4095c0
cmp esi, edx
jae 0x4095aa
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
add esi, 8
inc ecx
dec edi
inc esp
add esp, eax
dec esp
mov dword [ebp - 0x18], ebp
cmp esi, dword [edi + 0x50]
jb 0x409583
mov ecx, edx
mov eax, 1
shl eax, cl
dec eax
inc ecx
and eax, esp
inc ecx
shr esp, cl
add dword [edi + 0x4c], eax
sub esi, edx
mov eax, dword [edi + 0x30]
inc ecx
sub eax, ecx
inc ecx
add eax, eax
cmp dword [edi + 0x4c], eax
jbe 0x4095da
dec eax
lea eax, [0x1408b]
jmp 0x408962
mov dword [edi], 0x16
inc ebp
test ecx, ecx
je 0x40881e
mov ecx, dword [edi + 0x4c]
inc ecx
mov eax, eax
inc ecx
sub eax, ecx
cmp ecx, eax
jbe 0x409625
sub ecx, eax
mov eax, dword [edi + 0x34]
cmp ecx, eax
jbe 0x409614
mov edx, dword [edi + 0x2c]
sub ecx, eax
sub edx, ecx
jmp 0x409618
dec eax
lea eax, [0x14029]
jmp 0x408962
sub eax, ecx
mov edx, eax
mov eax, dword [edi + 0x48]
dec eax
add edx, dword [edi + 0x38]
cmp ecx, eax
jbe 0x409630
jmp 0x40962e
mov eax, dword [edi + 0x48]
dec ecx
mov edx, edx
dec eax
sub edx, ecx
mov ecx, eax
inc ecx
cmp ecx, ecx
inc ecx
cmova ecx, ecx
inc esp
sub ecx, ecx
sub eax, ecx
dec ecx
sub edx, edx
inc esp
mov dword [ebp + 0x58], ecx
mov dword [edi + 0x48], eax
inc edx
mov al, byte [edx + edx]
inc ecx
mov byte [edx], al
dec ecx
inc edx
dec ecx
jne 0x409646
dec esp
mov dword [ebp - 0x10], edx
lea edx, [ecx + 0x10]
lea eax, [ecx + 7]
inc esp
cmp dword [edi + 0x48], ebx
jne 0x4083cc
mov dword [edi], 0x12
jmp 0x4083cc
sub ecx, 0x17
je 0x4097c5
dec ecx
je 0x4096aa
dec ecx
je 0x409776
dec ecx
je 0x40981c
dec ecx
je 0x409805
dec ecx
jne 0x40841f
mov eax, 0xfffffffc
jmp 0x408424
inc esp
cmp dword [edi + 8], ebx
je 0x409770
jmp 0x4096d8
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, 0x20
jb 0x4096b6
inc ebp
sub eax, ecx
inc ebp
add dword [esi + 0x1c], eax
inc esp
add dword [edi + 0x1c], eax
inc ebp
test eax, eax
je 0x409721
mov ecx, dword [edi + 0x18]
inc ecx
mov eax, eax
dec ecx
mov edx, edx
dec eax
sub edx, eax
inc esp
cmp dword [edi + 0x10], ebx
je 0x409706
call fcn.0040a7c0
jmp 0x40970b
call fcn.0040a1e0
inc esp
mov ecx, dword [ebp + 0x58]
dec esp
mov edx, dword [ebp - 0x10]
inc ebp
xor ebx, ebx
mov dword [edi + 0x18], eax
inc ecx
lea edx, [ebx + 0x10]
inc ecx
mov dword [esi + 0x4c], eax
inc ecx
mov ecx, esp
inc ecx
mov eax, esp
inc ebp
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
inc esp
mov dword [ebp + 0x60], ecx
add ecx, eax
inc ecx
mov eax, esp
shr eax, 8
shl ecx, 8
and eax, 0xff00
add ecx, eax
inc ecx
mov eax, esp
shr eax, 0x18
add ecx, eax
inc esp
cmp dword [edi + 0x10], ebx
inc ecx
cmovne ecx, esp
cmp ecx, dword [edi + 0x18]
je 0x40976a
dec eax
lea eax, [0x13ebb]
jmp 0x4089cc
inc ebp
mov esp, ebx
inc ecx
mov esi, ebx
mov dword [edi], 0x19
inc esp
cmp dword [edi + 8], ebx
je 0x409816
inc esp
cmp dword [edi + 0x10], ebx
je 0x409816
jmp 0x4097ae
inc ebp
test edi, edi
je 0x40881e
inc ecx
movzx eax, byte [ebp]
mov ecx, esi
dec ecx
inc ebp
shl eax, cl
inc ecx
dec edi
dec esp
mov dword [ebp - 0x18], ebp
inc esp
add esp, eax
add esi, 8
cmp esi, 0x20
jb 0x40978c
inc esp
cmp esp, dword [edi + 0x1c]
je 0x409810
dec eax
lea eax, [0x13e48]
jmp 0x4089cc
inc ebp
test ecx, ecx
je 0x40881e
mov al, byte [edi + 0x48]
inc ecx
mov byte [edx], al
dec ecx
inc edx
inc ecx
dec ecx
mov dword [edi], 0x12
jmp 0x4083bf
dec ebp
mov dword [esi + 0x10], edx
inc ebp
mov dword [esi + 0x18], ecx
dec ebp
mov dword [esi], ebp
inc ebp
mov dword [esi + 8], edi
mov eax, 2
inc esp
mov dword [edi + 0x40], esp
mov dword [edi + 0x44], esi
jmp 0x408424
inc ecx
mov ebp, 0xfffffffd
jmp 0x408822
inc ebp
mov esp, ebx
inc ecx
mov esi, ebx
mov dword [edi], 0x1a
inc ecx
mov ebp, 1
jmp 0x408822
inc ecx
sub ebx, dword [esi + 0x18]
mov esi, dword [ebp - 0x20]
inc ecx
sub esi, dword [esi + 8]
inc ecx
add dword [esi + 0x1c], ebx
inc ecx
add dword [esi + 0xc], esi
add dword [edi + 0x1c], ebx
inc esp
cmp dword [edi + 8], esp
je 0x40986f
test ebx, ebx
je 0x40986f
dec ecx
mov edx, dword [esi + 0x10]
mov ecx, dword [edi + 0x18]
mov eax, ebx
dec eax
sub edx, eax
inc esp
mov eax, ebx
inc esp
cmp dword [edi + 0x10], esp
je 0x409863
call fcn.0040a7c0
jmp 0x409868
call fcn.0040a1e0
mov dword [edi + 0x18], eax
inc ecx
mov dword [esi + 0x4c], eax
mov eax, dword [edi + 4]
mov edx, 0x80
neg eax
inc ecx
mov eax, esp
sbb ecx, ecx
and ecx, 0x40
cmp dword [edi], 0xb
cmove eax, edx
add ecx, eax
add ecx, dword [edi + 0x44]
inc ecx
mov dword [esi + 0x48], ecx
test esi, esi
jne 0x409898
test ebx, ebx
je 0x40989e
cmp dword [ebp + 0x50], 4
jne 0x4098aa
mov eax, 0xfffffffb
inc ebp
test ebp, ebp
inc esp
cmove ebp, eax
inc ecx
mov eax, ebp
jmp 0x408424