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

Disassembly:
sub esp, 0x18
push ebx
mov ebx, dword [esp + 0x28]
push ebp
mov ebp, dword [esp + 0x28]
push esi
mov esi, dword [esp + 0x28]
push edi
mov dword [esp + 0x24], ebx
mov eax, dword [esi]
cmp eax, 0x4e20
jl 0x40232e
cdq
mov ecx, 0x64
idiv ecx
push edx
call fcn.00415a70
lea edx, [ebp + ebp*4]
add esp, 4
lea edi, [eax + edx*4]
mov eax, dword [edi*4 + 0x451840]
test eax, eax
je 0x40232e
push ebx
call fcn.00415a70
add esp, 4
cmp eax, 0xa
jle 0x40220c
add eax, 4
mov ecx, dword [esi + 0xc]
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*8]
mov ecx, edx
shl ecx, 4
add ecx, edx
lea ecx, [ecx + ecx*2]
lea ecx, [edx + ecx*2]
shl ecx, 2
mov edx, dword [ecx + 0x56e434]
test edx, edx
je 0x40232e
dec edx
test edx, edx
jne 0x402253
mov dword [ecx + 0x56e2a0], edx
mov edx, dword [edi*4 + 0x451840]
mov ecx, dword [edx + 4]
mov dword [ecx*4 + 0x5999e0], 0xffffffff
mov ecx, dword [esp + 0x30]
xor ebx, ebx
lea edx, [ecx + ecx*2]
lea ebp, [eax + edx*8]
mov ecx, ebp
shl ecx, 4
add ecx, ebp
lea ecx, [ecx + ecx*2]
lea ecx, [ebp + ecx*2]
shl ecx, 2
mov edx, dword [ecx + 0x56e434]
test edx, edx
jle 0x4022a1
mov edx, dword [edi*4 + 0x451840]
mov edx, dword [edx + 4]
mov edi, dword [edx*4 + 0x451a60]
lea edx, [ecx + 0x56e2a4]
cmp dword [edx], edi
je 0x4022a1
inc ebx
add edx, 4
cmp ebx, dword [ecx + 0x56e434]
jl 0x402291
mov edx, dword [ecx + 0x56e434]
dec edx
mov dword [ecx + 0x56e434], edx
mov ecx, dword [esi + 0xc]
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*8]
mov ecx, edx
shl ecx, 4
add ecx, edx
lea ecx, [ecx + ecx*2]
lea edx, [edx + ecx*2]
cmp ebx, dword [edx*4 + 0x56e434]
jge 0x40230c
mov ecx, ebp
lea edx, [ebx + ebp]
shl ecx, 4
add ecx, ebp
lea ecx, [ecx + ecx*2]
lea ecx, [edx + ecx*2]
lea edi, [ecx*4 + 0x56e2a4]
mov edx, dword [edi + 4]
inc ebx
mov dword [edi], edx
mov ecx, dword [esi + 0xc]
add edi, 4
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*8]
mov ecx, edx
shl ecx, 4
add ecx, edx
lea ecx, [ecx + ecx*2]
lea edx, [edx + ecx*2]
cmp ebx, dword [edx*4 + 0x56e434]
jl 0x4022e4
mov eax, ebp
shl eax, 4
add eax, ebp
add ebx, ebp
mov ebp, dword [esp + 0x30]
lea eax, [eax + eax*2]
lea ecx, [ebx + eax*2]
mov ebx, dword [esp + 0x34]
mov dword [ecx*4 + 0x56e2a4], 0
cmp dword [esi + 0x30], 9
jne 0x4023ce
or eax, 0xffffffff
mov dword [esi + 0x30], eax
mov dword [esi + 0x10], eax
mov edx, dword [0x442700]
mov eax, dword [0x59e9e4]
dec edx
mov dword [0x442700], edx
mov edx, eax
dec eax
test edx, edx
mov dword [0x59e9e4], eax
jg 0x403185
mov eax, dword [0x467e14]
test eax, eax
je 0x403185
push 0
call fcn.0042faad
mov dword [esp + 0x34], eax
add esp, 4
fild dword [esp + 0x30]
fsub qword [0x4a5ee8]
fild dword [0x43f200]
fcompp
fnstsw ax
test ah, 1
je 0x403185
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [0x56d760]
push ecx
push edx
push ebx
push ebp
push esi
push 1
push eax
push 0x4d1360
call fcn.00412ef0
add esp, 0x24
push 1
push 0x48cd00
call fcn.0042fa34
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
test eax, eax
mov dword [esp + 0x3c], edi
jne 0x4025a1
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x10]
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*2]
shl eax, 2
cmp dword [eax + 0x583fd8], 1
je 0x402524
mov ebp, dword [eax + 0x583fd4]
dec ebp
mov dword [eax + 0x583fd4], ebp
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x10]
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*2]
mov eax, dword [ecx*4 + 0x583fd4]
test eax, eax
jne 0x40246b
mov edx, dword [esi]
mov dword [edx*4 + 0x5999e0], 0xffffffff
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + edx*2]
mov dword [eax*4 + 0x583e40], 0
mov eax, dword [esi + 8]
xor edx, edx
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x10]
lea eax, [eax + ecx*8]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
shl ecx, 2
mov ebp, dword [ecx + 0x583fd4]
lea ebx, [ebp + 1]
test ebx, ebx
jle 0x4024a8
lea ecx, [ecx + 0x583e44]
cmp dword [ecx], esi
je 0x4024a8
inc edx
add ecx, 4
cmp edx, ebx
jl 0x40249c
cmp edx, ebp
jge 0x4024ed
mov ecx, eax
shl ecx, 4
add ecx, eax
add eax, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
shl eax, 2
inc edx
mov ecx, dword [eax + 0x583e48]
mov dword [eax + 0x583e44], ecx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
cmp edx, dword [ecx*4 + 0x583fd4]
jl 0x4024ac
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
mov eax, ecx
add edx, ecx
shl eax, 4
add eax, ecx
lea eax, [eax + eax*2]
lea ecx, [edx + eax*2]
or eax, 0xffffffff
mov dword [ecx*4 + 0x583e44], 0
mov dword [esi + 0x10], eax
mov dword [esi + 0x30], eax
mov eax, dword [0x59e9e4]
mov edx, eax
dec eax
test edx, edx
mov dword [0x59e9e4], eax
jg 0x403185
mov eax, dword [0x467e14]
test eax, eax
je 0x403185
push 0
call fcn.0042faad
mov dword [esp + 0x34], eax
add esp, 4
fild dword [esp + 0x30]
fsub qword [0x4a5ee8]
fild dword [0x43f200]
fcompp
fnstsw ax
test ah, 1
je 0x403185
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
mov edx, dword [0x56d760]
push eax
push edi
push ecx
push ebx
push ebp
push esi
push 1
push edx
push 0x4d1360
call fcn.00412ef0
add esp, 0x24
push 1
push 0x48cd00
call fcn.0042fa34
cmp ebx, 0xffffffff
mov dword [esi + 0x30], 0xffffffff
je 0x40269e
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
lea ebp, [edi + edi*4]
shl ebp, 4
lea ecx, [eax + ebp]
mov eax, ecx
shl eax, 4
add eax, ecx
lea edx, [eax + eax*2]
lea ebx, [ecx + edx*2]
shl ebx, 2
cmp dword [ebx + 0x59f338], 1
je 0x4026b3
mov eax, dword [ebx + 0x59f334]
dec eax
mov dword [ebx + 0x59f334], eax
jne 0x402629
mov eax, dword [esi + 0x2c]
lea edi, [eax - 0xb]
cmp edi, 9
ja case.0x402601.12
xor eax, eax
mov al, byte [edi + 0x403198]
jmp dword [eax*4 + 0x403190]
mov eax, dword [esi]
mov edi, 0x64
cdq
idiv edi
add edx, ebp
mov dword [edx*4 + 0x4c2100], 0xffffffff
mov dword [ebx + 0x59f1a0], 0
mov edi, dword [ebx + 0x59f334]
xor eax, eax
lea edx, [edi + 1]
test edx, edx
jle 0x40264b
lea ebp, [ebx + 0x59f1a4]
cmp dword [ebp], esi
je 0x40264b
inc eax
add ebp, 4
cmp eax, edx
jl 0x40263e
cmp eax, edi
mov ebp, eax
jge 0x40267a
mov edx, ecx
shl edx, 4
add edx, ecx
add eax, ecx
lea edx, [edx + edx*2]
lea eax, [eax + edx*2]
lea eax, [eax*4 + 0x59f1a4]
mov edx, dword [eax + 4]
inc ebp
mov dword [eax], edx
mov edx, dword [ebx + 0x59f334]
add eax, 4
cmp ebp, edx
jl 0x402667
mov eax, ecx
shl eax, 4
add eax, ecx
add ebp, ecx
lea eax, [eax + eax*2]
lea ecx, [ebp + eax*2]
mov dword [ecx*4 + 0x59f1a4], 0
mov dword [esi + 0x20], 0xffffffff
jmp 0x4026af
mov edx, dword [esi + 0x10]
mov eax, 0x13
sub eax, edx
shl eax, 2
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x10]
lea eax, [esp + 0x2c]
push edx
push eax
push ecx
call fcn.00407f20
mov eax, dword [esi + 0x2c]
add esp, 0xc
add eax, 0xfffffffb
cmp eax, 0xe
ja case.0x4026e1.6
xor edx, edx
mov dl, byte [eax + 0x4031ac]
jmp dword [edx*4 + 0x4031a4]
mov eax, dword [esi + 0x18]
mov edx, dword [esp + 0x3c]
lea eax, [eax + eax*2]
lea ecx, [edx + eax*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*2]
shl eax, 2
mov ecx, dword [eax + 0x583fd8]
test ecx, ecx
jne 0x402809
mov ecx, dword [eax + 0x583fd4]
dec ecx
mov dword [eax + 0x583fd4], ecx
mov eax, dword [esi + 0x18]
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + edx*2]
shl eax, 2
mov ecx, dword [eax + 0x583fd4]
test ecx, ecx
jne 0x40275b
mov dword [eax + 0x583e40], 0
mov eax, dword [esi + 0x38]
mov dword [eax*4 + 0x5999e0], 0xffffffff
mov eax, dword [esi + 0x18]
xor edx, edx
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x3c]
lea eax, [eax + ecx*8]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
shl ecx, 2
mov ebp, dword [ecx + 0x583fd4]
lea ebx, [ebp + 1]
test ebx, ebx
jle 0x402799
lea ecx, [ecx + 0x583e44]
cmp dword [ecx], esi
je 0x402799
inc edx
add ecx, 4
cmp edx, ebx
jl 0x40278d
mov ebx, dword [esp + 0x3c]
cmp edx, ebp
jge 0x4027df
mov ecx, eax
shl ecx, 4
add ecx, eax
add eax, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
shl eax, 2
inc edx
mov ecx, dword [eax + 0x583e48]
mov dword [eax + 0x583e44], ecx
mov eax, dword [esi + 0x18]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*8]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
cmp edx, dword [ecx*4 + 0x583fd4]
jl 0x4027a1
mov eax, dword [esi + 0x18]
lea eax, [eax + eax*2]
lea ecx, [ebx + eax*8]
mov eax, ecx
shl eax, 4
add eax, ecx
add edx, ecx
lea eax, [eax + eax*2]
lea ecx, [edx + eax*2]
mov dword [ecx*4 + 0x583e44], 0
mov dword [esi + 0x28], 0xffffffff
mov ebp, dword [esp + 0x34]
mov eax, dword [esi + 0x24]
lea edx, [edi + edi*4]
shl edx, 4
add edx, ebp
lea ecx, [eax + edx*2]
mov eax, dword [esi + 0x18]
mov edx, dword [ecx*4 + 0x43b040]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*2]
mov ecx, dword [eax*4 + 0x5da074]
dec ecx
mov dword [eax*4 + 0x5da074], ecx
mov eax, dword [esi + 0x18]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*2]
shl eax, 2
mov ecx, dword [eax + 0x5da074]
test ecx, ecx
jne 0x40287a
mov dword [eax + 0x5d9ee0], 0
mov eax, dword [esi + 0x18]
xor edi, edi
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
shl ecx, 2
mov ebp, dword [ecx + 0x5da074]
lea ebx, [ebp + 1]
test ebx, ebx
jle 0x4028b7
lea ecx, [ecx + 0x5d9ee4]
cmp dword [ecx], esi
je 0x4028b7
inc edi
add ecx, 4
cmp edi, ebx
jl 0x4028ab
cmp edi, ebp
jge 0x4028fc
mov ecx, eax
shl ecx, 4
add ecx, eax
add eax, edi
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
shl eax, 2
inc edi
mov ecx, dword [eax + 0x5d9ee8]
mov dword [eax + 0x5d9ee4], ecx
mov eax, dword [esi + 0x18]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
cmp edi, dword [ecx*4 + 0x5da074]
jl 0x4028bb
mov eax, dword [esi + 0x18]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, edx
shl eax, 4
add eax, edx
add edi, edx
lea ecx, [eax + eax*2]
lea edx, [edi + ecx*2]
mov edi, dword [esp + 0x30]
mov dword [edx*4 + 0x5d9ee4], 0
mov eax, dword [esi + 0x2c]
or edx, 0xffffffff
add eax, 0xfffffff9
mov dword [esi + 0x24], edx
cmp eax, 0xd
ja case.0x402943.8
xor ecx, ecx
mov cl, byte [eax + 0x4031c4]
jmp dword [ecx*4 + 0x4031bc]
mov ecx, dword [esp + 0x3c]
lea eax, [edi + edi*2]
lea eax, [ecx + eax*8]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
shl ecx, 2
mov edi, dword [ecx + 0x56e438]
test edi, edi
jne case.0x402943.8
mov edi, dword [ecx + 0x56e434]
dec edi
mov dword [ecx + 0x56e434], edi
jne 0x402995
mov dword [ecx + 0x56e2a0], 0
mov edi, dword [esi + 0x38]
mov dword [edi*4 + 0x5999e0], edx
mov edi, dword [ecx + 0x56e434]
xor edx, edx
lea ebx, [edi + 1]
test ebx, ebx
jle 0x4029b7
lea ebp, [ecx + 0x56e2a4]
cmp dword [ebp], esi
je 0x4029b7
inc edx
add ebp, 4
cmp edx, ebx
jl 0x4029aa
cmp edx, edi
mov ebp, edx
jge 0x4029e6
mov ebx, eax
shl ebx, 4
add ebx, eax
add edx, eax
lea edi, [ebx + ebx*2]
lea edx, [edx + edi*2]
lea edx, [edx*4 + 0x56e2a4]
mov edi, dword [edx + 4]
inc ebp
mov dword [edx], edi
mov edi, dword [ecx + 0x56e434]
add edx, 4
cmp ebp, edi
jl 0x4029d3
mov ecx, eax
shl ecx, 4
add ecx, eax
add ebp, eax
lea ecx, [ecx + ecx*2]
lea edx, [ebp + ecx*2]
mov dword [edx*4 + 0x56e2a4], 0
mov dword [esi + 0x28], 0xffffffff
mov eax, dword [esi + 0x2c]
dec eax
cmp eax, 0xf
ja case.0x402a1d.3
xor ecx, ecx
mov cl, byte [eax + 0x4031e0]
jmp dword [ecx*4 + 0x4031d4]
mov eax, dword [esi + 8]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x10]
lea ecx, [eax + edx*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + edx*2]
shl eax, 2
mov ecx, dword [eax + 0x583fd8]
test ecx, ecx
jne 0x402b5f
mov ebx, dword [eax + 0x583fd4]
dec ebx
mov dword [eax + 0x583fd4], ebx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + edx*2]
mov ecx, dword [eax*4 + 0x583fd4]
test ecx, ecx
jne 0x402ab0
mov ecx, dword [esi]
mov dword [ecx*4 + 0x5999e0], 0xffffffff
mov eax, dword [esi + 8]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x10]
lea ecx, [eax + edx*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + edx*2]
mov dword [eax*4 + 0x583e40], 0
mov eax, dword [esi + 8]
xor edx, edx
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x10]
lea eax, [eax + ecx*8]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
shl ecx, 2
mov ebp, dword [ecx + 0x583fd4]
lea ebx, [ebp + 1]
test ebx, ebx
jle 0x402aed
lea ecx, [ecx + 0x583e44]
cmp dword [ecx], esi
je 0x402aed
inc edx
add ecx, 4
cmp edx, ebx
jl 0x402ae1
cmp edx, ebp
jge 0x402b32
mov ecx, eax
shl ecx, 4
add ecx, eax
add eax, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
shl eax, 2
inc edx
mov ecx, dword [eax + 0x583e48]
mov dword [eax + 0x583e44], ecx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
cmp edx, dword [ecx*4 + 0x583fd4]
jl 0x402af1
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
mov eax, ecx
shl eax, 4
add eax, ecx
add edx, ecx
lea eax, [eax + eax*2]
lea ecx, [edx + eax*2]
mov dword [ecx*4 + 0x583e44], 0
mov dword [esi + 0x10], 0xffffffff
mov dword [esi + 0xc], 0xffffffff
jmp case.0x402a1d.3
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x10]
lea ecx, [eax + edx*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + edx*2]
shl eax, 2
mov ecx, dword [eax + 0x56e438]
test ecx, ecx
jne case.0x402a1d.3
mov ebx, dword [eax + 0x56e434]
dec ebx
mov dword [eax + 0x56e434], ebx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + edx*2]
mov ecx, dword [eax*4 + 0x56e434]
test ecx, ecx
jne 0x402bf7
mov ecx, dword [esi]
mov dword [ecx*4 + 0x5999e0], 0xffffffff
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x10]
lea ecx, [eax + edx*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + edx*2]
mov dword [eax*4 + 0x56e2a0], 0
mov eax, dword [esi + 0xc]
xor edx, edx
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x10]
lea eax, [eax + ecx*8]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
shl ecx, 2
mov ebp, dword [ecx + 0x56e434]
lea ebx, [ebp + 1]
test ebx, ebx
jle 0x402c34
lea ecx, [ecx + 0x56e2a4]
cmp dword [ecx], esi
je 0x402c34
inc edx
add ecx, 4
cmp edx, ebx
jl 0x402c28
cmp edx, ebp
jge 0x402c79
mov ecx, eax
shl ecx, 4
add ecx, eax
add eax, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
shl eax, 2
inc edx
mov ecx, dword [eax + 0x56e2a8]
mov dword [eax + 0x56e2a4], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
cmp edx, dword [ecx*4 + 0x56e434]
jl 0x402c38
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
mov eax, ecx
shl eax, 4
add eax, ecx
add edx, ecx
lea eax, [eax + eax*2]
lea ecx, [edx + eax*2]
mov dword [ecx*4 + 0x56e2a4], 0
mov dword [esi + 0x10], 0xffffffff
mov eax, dword [esi + 0x2c]
cmp eax, 3
je 0x402cc7
cmp eax, 4
je 0x402cc7
cmp eax, 5
je 0x402cc7
cmp eax, 6
je 0x402cc7
cmp eax, 0xa
je 0x402cc7
cmp eax, 7
jne 0x402cce
mov dword [esi + 0x10], 0xffffffff
add eax, 0xfffffff9
cmp eax, 0xd
ja case.0x402cde.8
xor edx, edx
mov dl, byte [eax + 0x4031f8]
jmp dword [edx*4 + 0x4031f0]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esi + 0x18]
xor edi, edi
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x30]
lea edx, [ebx + eax*8]
add eax, edx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*2]
lea eax, [eax + eax*2]
shl eax, 2
mov ecx, dword [eax + 0x646920]
test ecx, ecx
jle 0x402d39
lea edx, [eax + 0x646924]
mov eax, dword [edx]
test eax, eax
je 0x402d31
cmp dword [eax], esi
je 0x402d2d
mov eax, dword [eax + 4]
test eax, eax
jne 0x402d20
jmp 0x402d31
test eax, eax
jne 0x402d39
inc edi
add edx, 4
cmp edi, ecx
jl 0x402d1a
cmp edi, ecx
jne 0x402d5b
push 0x59e1
call fcn.0042f600
push str._nPlacement_and_routing_completed_with_errors_n
call fcn.0042f8c0
push 2
call fcn.00407190
add esp, 0xc
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
lea eax, [edx + eax*4]
lea ecx, [ebx + eax*8]
add eax, ecx
lea edx, [eax + eax*2]
lea eax, [ebp + edx*2]
lea ecx, [edi + eax*2]
add eax, ecx
lea edx, [eax*4 + 0x646924]
mov eax, dword [esi + 0x3c]
push edx
push eax
call fcn.0040f350
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
add esp, 8
lea eax, [edx + ecx*4]
lea ecx, [ebx + eax*8]
add eax, ecx
lea edx, [eax + eax*2]
lea eax, [ebp + edx*2]
lea ebp, [eax + eax*2]
lea eax, [edi + ebp]
mov ecx, dword [eax*4 + 0x646924]
test ecx, ecx
mov dword [esp + 0x34], ecx
je case.0x402de0.5
mov edx, dword [ecx]
cmp dword [edx + 0x24], 0xffffffff
je case.0x402de0.5
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
add eax, 0xfffffffb
cmp eax, 0xe
ja case.0x402de0.6
xor edx, edx
mov dl, byte [eax + 0x403210]
jmp dword [edx*4 + 0x403208]
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x402dcb
mov eax, dword [esp + 0x34]
test eax, eax
je case.0x402de0.5
sub ebp, edi
mov ebp, dword [ebp*4 + 0x646928]
test ebp, ebp
je 0x402eba
mov ecx, dword [ebp]
mov edx, dword [eax]
mov ecx, dword [ecx]
mov ebp, dword [edx]
cmp ecx, ebp
jne 0x402eba
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x34], eax
lea ecx, [ebp + ecx*4]
lea ebp, [ebx + ecx*8]
add ecx, ebp
mov ebp, dword [eax]
lea ecx, [ecx + ecx*2]
lea ecx, [edx + ecx*2]
lea ecx, [ecx + ecx*2]
sub ecx, edi
mov ecx, dword [ecx*4 + 0x646928]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x24]
mov dword [ebp + 0x24], ecx
mov eax, dword [eax + 4]
test eax, eax
jne 0x402e20
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + ecx*4]
lea ecx, [ebx + eax*8]
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [edx + eax*2]
lea ecx, [eax + eax*2]
sub ecx, edi
mov eax, dword [ecx*4 + 0x646928]
mov ecx, dword [esp + 0x34]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
lea eax, [ecx + eax*4]
lea ecx, [ebx + eax*8]
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [edx + eax*2]
lea eax, [eax + eax*2]
lea ecx, [eax + edi]
sub eax, edi
mov edx, dword [ecx*4 + 0x646924]
mov dword [eax*4 + 0x646928], edx
mov dword [ecx*4 + 0x646924], 0
jmp case.0x402de0.5
or ecx, 0xffffffff
mov edx, dword [eax]
mov dword [edx + 0x24], ecx
mov eax, dword [eax + 4]
test eax, eax
jne 0x402ebd
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x30]
lea edx, [ebx + eax*8]
add eax, edx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*2]
mov ecx, eax
lea edx, [edi + eax*2]
add ecx, edx
mov edx, dword [ecx*4 + 0x646924]
test edx, edx
jne case.0x402cde.7
lea eax, [eax + eax*2]
shl eax, 2
mov edx, dword [eax + 0x646920]
dec edx
test edi, edi
mov dword [eax + 0x646920], edx
jne 0x402f18
mov edx, dword [eax + 0x646928]
mov dword [eax + 0x646924], edx
mov dword [eax + 0x646928], 0
mov eax, dword [esi + 0x2c]
add eax, 0xfffffffb
cmp eax, 0xf
ja case.0x402f31.8
jmp dword [eax*4 + 0x403220]
cmp dword [esi + 0x34], 1
jne case.0x402f31.8
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x3c]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + edx*2]
shl eax, 2
mov ecx, dword [eax + 0x583fd8]
test ecx, ecx
jne case.0x402f31.8
mov eax, dword [eax + 0x583fd4]
dec eax
mov dword [esp + 0x34], eax
js case.0x402f31.8
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x3c]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x34]
add eax, ecx
lea ecx, [eax + edx*2]
mov edi, dword [ecx*4 + 0x583e44]
mov ebx, dword [edi + 0x10]
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x24]
mov eax, dword [edi + 0x20]
mov ebp, dword [edi + 0xc]
push ebx
push edx
push ecx
push eax
push ebp
push edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], edx
call fcn.004021b0
mov eax, dword [0x4426e8]
mov edx, dword [esp + 0x2c]
mov ecx, eax
inc eax
mov dword [0x4426e8], eax
mov eax, dword [esp + 0x30]
push ebx
push edx
mov edx, dword [esp + 0x3c]
push eax
push edx
push ebp
push edi
push 1
push ecx
push 0x4d1360
call fcn.00412ef0
push ebx
push edi
call fcn.00405d60
mov eax, dword [esp + 0x78]
add esp, 0x44
dec eax
mov dword [esp + 0x34], eax
jns 0x402f7e
jmp case.0x402f31.8
cmp dword [esi + 0x34], 1
jne case.0x402f31.8
mov eax, dword [esi + 0x1c]
mov ecx, dword [esp + 0x3c]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
mov eax, ecx
shl eax, 4
add eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + edx*2]
mov ecx, dword [eax*4 + 0x56e438]
test ecx, ecx
jne case.0x402f31.8
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*8]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
mov edx, dword [edx*4 + 0x56e434]
dec edx
js case.0x402f31.8
mov ecx, eax
shl ecx, 4
add ecx, eax
add eax, edx
inc edx
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x20], edx
lea ecx, [eax + ecx*2]
lea eax, [ecx*4 + 0x56e2a4]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x34]
mov edi, dword [ecx]
mov ebx, dword [edi + 0x10]
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x24]
mov eax, dword [edi + 0x20]
mov ebp, dword [edi + 0xc]
push ebx
push edx
push ecx
push eax
push ebp
push edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], edx
call fcn.004021b0
mov eax, dword [0x4426e8]
mov edx, dword [esp + 0x2c]
mov ecx, eax
inc eax
mov dword [0x4426e8], eax
mov eax, dword [esp + 0x30]
push ebx
push edx
mov edx, dword [esp + 0x3c]
push eax
push edx
push ebp
push edi
push 1
push ecx
push 0x4d1360
call fcn.00412ef0
push ebx
push edi
call fcn.00405d60
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x64]
add esp, 0x44
sub ecx, 4
dec eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x20], eax
jne 0x403090
mov eax, dword [0x59e9e4]
mov ecx, eax
dec eax
test ecx, ecx
mov dword [0x59e9e4], eax
jg 0x403185
mov eax, dword [0x467e14]
test eax, eax
je 0x403185
push 0
call fcn.0042faad
mov dword [esp + 0x38], eax
add esp, 4
fild dword [esp + 0x34]
fsub qword [0x4a5ee8]
fild dword [0x43f200]
fcompp
fnstsw ax
test ah, 1
je 0x403185
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [0x56d760]
push edx
push eax
push esi
push 1
push ecx
push 0x4d1360
call fcn.00412ef0
add esp, 0x24
push 1
push 0x48cd00
call fcn.0042fa34
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
nop
nop
nop
in al, dx
inc eax
mov ecx, dword [0x4c7384]
push ebx
push ebp
push esi
push edi
xor eax, eax
xor ebx, ebx
xor edi, edi
xor ebp, ebp
cmp ecx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
jle 0x4133d4
mov esi, 0x4b3380
mov edx, 0x479800
mov ecx, 0x5cf644
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x4c], 6
mov esi, dword [esi]
mov ebx, dword [esp + 0x28]
add ebx, esi
mov esi, dword [edx - 0x3a0]
test esi, esi
mov dword [esp + 0x28], ebx
je 0x413321
mov ebx, dword [esp + 0x20]
mov esi, dword [edx]
mov edi, dword [esp + 0x34]
inc ebx
add edi, esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x34], edi
mov ebx, eax
mov edi, ecx
lea esi, [edx + 4]
mov dword [esp + 0x40], 0x14
cmp dword [esi], 0
je 0x4132a3
inc dword [esp + 0x30]
xor eax, eax
lea ecx, [edi - 0x24]
cmp dword [ecx], 0
jne 0x4132b8
inc eax
add ecx, 4
cmp eax, 9
jle 0x4132a8
jmp 0x413301
mov ecx, dword [esp + 0x14]
inc ecx
cmp eax, 9
mov dword [esp + 0x14], ecx
jge 0x4132e5
lea ecx, [ebx + eax]
lea ecx, [ecx*4 + 0x5cf620]
cmp eax, ebp
je 0x4132d9
cmp dword [ecx], 0
jne 0x4132e2
inc eax
add ecx, 4
cmp eax, 9
jl 0x4132d0
cmp eax, 9
jne 0x4132fd
mov eax, dword [edi]
test eax, eax
je 0x413301
mov ecx, dword [eax]
cmp dword [ecx + 0x18], ebp
invalid
sbb byte [ebp + 9], dh
imul ebx, dword [eax], 0x408b0975
add al, 0x85
sal byte [ebp - 0xe], 0xeb
add al, 0xff
inc esp
and al, 0x10
mov eax, dword [eax + 4]
test eax, eax
jne 0x4132ed
jmp 0x413301
inc dword [esp + 0x10]
mov eax, dword [esp + 0x40]
add esi, 4
add ebx, 0xa
add edi, 0x28
dec eax
mov dword [esp + 0x40], eax
jne 0x41329a
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x4c]
add esi, 4
add eax, 0xc8
add ecx, 0x320
add edx, 0x4e8
dec ebx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ebx
jne 0x41325c
mov ebx, dword [0x4c7384]
inc ebp
cmp ebp, ebx
jl 0x413248
mov ecx, dword [0x4c7384]
mov ebx, dword [esp + 0x18]
xor eax, eax
cmp ecx, eax
jle 0x4133d4
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
mov eax, 0x4b88c0
sub edx, eax
sub esi, eax
sub edi, eax
mov dword [esp + 0x54], ecx
jmp 0x413394
mov ebx, dword [esp + 0x18]
mov ecx, dword [edx + eax]
mov ebp, dword [esp + 0x24]
add ebx, ecx
mov ecx, dword [edi + eax]
mov dword [esp + 0x18], ebx
mov ebx, dword [eax]
add ebx, ecx
add eax, 4
add ebp, ebx
mov ebx, dword [esi + eax - 4]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x38]
add ebx, ecx
mov ecx, dword [esp + 0x54]
add ebp, ebx
dec ecx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x54], ecx
jne 0x413390
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
sub ecx, eax
sub edx, eax
mov esi, 6
mov ebp, dword [ecx + eax]
add eax, 4
add ebx, ebp
mov ebp, dword [eax - 4]
add edi, ebp
mov ebp, dword [edx + eax - 4]
add dword [esp + 0x3c], ebp
dec esi
jne 0x4133e9
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ebx
mov esi, 0x46e864
mov eax, dword [esi]
test eax, eax
je 0x413443
mov edx, dword [esp + 0x14]
inc edx
test eax, eax
mov dword [esp + 0x14], edx
je 0x413443
mov ecx, dword [eax]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 8]
cmp edx, ecx
jne 0x41343f
cmp edx, 0xffffffff
jne 0x413436
cmp ecx, edx
je 0x41343f
mov eax, dword [eax + 4]
test eax, eax
jne 0x413421
jmp 0x413443
inc dword [esp + 0x10]
add esi, 4
cmp esi, 0x46f1c0
jl 0x41340e
mov eax, dword [0x4437f4]
test eax, eax
je 0x413653
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x413477
fld dword [0x439120]
fld dword [0x439120]
fld dword [0x439120]
jmp 0x41349f
fild dword [esp + 0x14]
fstp dword [esp + 0x54]
fild dword [esp + 0x24]
fdiv dword [esp + 0x54]
fild dword [esp + 0x1c]
fdiv dword [esp + 0x54]
fild dword [0x442700]
fdiv dword [esp + 0x54]
fmul dword [0x43918c]
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4134b5
fld dword [0x439120]
fld dword [0x439120]
jmp 0x4134cd
fild dword [esp + 0x20]
fstp dword [esp + 0x54]
fild dword [esp + 0x30]
fdiv dword [esp + 0x54]
fild dword [esp + 0x34]
fdiv dword [esp + 0x54]
fild dword [esp + 0x24]
fild dword [0x4c7384]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [0x4426f4]
sub edi, ebp
sub esp, 8
fstp dword [esp + 0x5c]
fild dword [esp + 0x40]
mov dword [esp + 0x64], edi
sub esp, 8
mov esi, eax
fdiv dword [esp + 0x64]
fstp dword [esp + 0x74]
fild dword [esp + 0x2c]
fstp dword [esp + 0x78]
fild dword [esp + 0x6c]
fstp dword [esp + 0x6c]
fxch st(5)
fstp qword [esp + 8]
fxch st(3)
fstp qword [esp]
push ecx
mov ecx, dword [0x442700]
sub esp, 8
fxch st(1)
fstp qword [esp]
fxch st(2)
fld st(0)
fmul dword [0x439188]
push ecx
mov ecx, dword [esp + 0x30]
sub esp, 8
sub esi, ecx
fdiv dword [esp + 0x7c]
sub esp, 8
sub esp, 8
sub esp, 8
sub esp, 8
sub esp, 8
sub esp, 8
sub esp, 8
fmul dword [0x43918c]
fstp qword [esp + 0x38]
fdiv dword [esp + 0xb4]
fstp qword [esp + 0x30]
fld dword [esp + 0xc4]
fmul dword [0x439184]
fstp qword [esp + 0x28]
fld dword [esp + 0xc4]
fstp qword [esp + 0x20]
fld dword [esp + 0xc8]
fmul dword [0x439180]
fstp qword [esp + 0x18]
fld dword [esp + 0xc8]
fmul dword [0x43917c]
fstp qword [esp + 0x10]
fld dword [esp + 0xbc]
fmul dword [0x439180]
fstp qword [esp + 8]
fld dword [esp + 0xbc]
fmul dword [0x43917c]
fstp qword [esp]
push ecx
push esi
push eax
sub esp, 8
fxch st(1)
fstp qword [esp]
sub esp, 8
fstp qword [esp]
fild dword [esp + 0x9c]
sub esp, 8
fdiv dword [esp + 0xd8]
fmul dword [0x439178]
fstp qword [esp]
fild dword [esp + 0x9c]
push edx
mov edx, dword [0x4c7384]
add edx, 6
mov dword [esp + 0xec], edx
fidiv dword [esp + 0xec]
fmul dword [0x439174]
sub esp, 8
mov eax, dword [esp + 0xb8]
fstp qword [esp]
fild dword [esp + 0xb8]
push ebx
sub esp, 8
fdiv dword [esp + 0xf0]
fmul dword [0x439170]
fstp qword [esp]
push eax
push str._4d__6.2f_____4d__6.2f_____4d__6.2f______5.2f___5.2f_4d_4d_4d___5.2f__6.2f_____5.2f__6.2f_____5.2f__6.2f______5.2f__6.2f_____3d__6.2f_____3d___5.2f___5.2f_n
call fcn.0042f920
add esp, 0xa4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret