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

Disassembly:
mov eax, 0x200e4
call fcn.00488a80
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x8534]
test eax, eax
push edi
mov dword [esp + 0x64], CreateStatusWindowA
mov dword [esp + 0x44], 0
jne 0x4187b4
mov eax, dword [esi + 0x354]
test eax, eax
je 0x4187b4
mov eax, dword [esi + 0x8544]
test eax, eax
je 0x417358
push str.Phase_One_correction..._n
push 0x69aee0
call fcn.00487674
add esp, 8
mov eax, dword [esi + 0x348]
mov ecx, dword [esi]
push 0
push eax
push ecx
call fcn.00487810
mov edx, dword [esi]
push edx
push 2
lea eax, [esp + 0x2e]
push 1
push eax
mov byte [esp + 0x36], 0xff
mov byte [esp + 0x37], 0xff
call fcn.00487020
mov edi, 0x4949
add esp, 0x1c
xor eax, eax
cmp word [esi + 4], di
jne 0x41739e
mov ah, byte [esp + 0x1b]
mov al, byte [esp + 0x1a]
jmp 0x4173aa
movzx cx, byte [esp + 0x1b]
mov ah, byte [esp + 0x1a]
or eax, ecx
mov edx, dword [esi]
push 1
push 6
push edx
mov word [esi + 4], ax
call fcn.00487810
mov eax, dword [esi]
push eax
push 4
lea ecx, [esp + 0x28]
push 1
push ecx
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
mov byte [esp + 0x32], 0xff
mov byte [esp + 0x33], 0xff
call fcn.00487020
movzx ecx, byte [esp + 0x31]
movzx edx, byte [esp + 0x32]
add esp, 0x1c
cmp word [esi + 4], di
jne 0x41740d
movzx eax, byte [esp + 0x17]
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x14]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
jmp 0x417424
xor eax, eax
mov ah, byte [esp + 0x14]
or eax, ecx
movzx ecx, byte [esp + 0x17]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov edx, dword [esi + 0x348]
add edx, eax
mov eax, dword [esi]
push 0
push edx
push eax
call fcn.00487810
mov ecx, dword [esi]
push ecx
push 4
lea edx, [esp + 0x28]
push 1
push edx
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
mov byte [esp + 0x32], 0xff
mov byte [esp + 0x33], 0xff
call fcn.00487020
movzx ecx, byte [esp + 0x31]
add esp, 0x1c
cmp word [esi + 4], di
jne 0x41748a
movzx edi, byte [esp + 0x17]
movzx eax, byte [esp + 0x16]
movzx edx, byte [esp + 0x14]
shl edi, 8
or edi, eax
shl edi, 8
or edi, ecx
shl edi, 8
or edi, edx
jmp 0x4174a8
movzx edx, byte [esp + 0x16]
xor eax, eax
mov ah, byte [esp + 0x14]
or eax, ecx
movzx ecx, byte [esp + 0x17]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov edi, eax
mov edx, dword [esi]
push edx
push 4
lea eax, [esp + 0x18]
push 1
push eax
mov dword [esp + 0x70], edi
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
test edi, edi
je 0x4187b4
lea esp, [esp]
dec dword [esp + 0x60]
mov ecx, dword [esi]
push ecx
push 4
lea edx, [esp + 0x40]
push 1
push edx
mov byte [esp + 0x48], 0xff
mov byte [esp + 0x49], 0xff
mov byte [esp + 0x4a], 0xff
mov byte [esp + 0x4b], 0xff
call fcn.00487020
movzx ecx, byte [esp + 0x49]
mov edi, 0x4949
add esp, 0x10
cmp word [esi + 4], di
jne 0x41753c
movzx ebp, byte [esp + 0x3b]
movzx eax, byte [esp + 0x3a]
movzx edx, byte [esp + 0x38]
shl ebp, 8
or ebp, eax
shl ebp, 8
or ebp, ecx
shl ebp, 8
or ebp, edx
jmp 0x41755a
movzx edx, byte [esp + 0x3a]
xor eax, eax
mov ah, byte [esp + 0x38]
or eax, ecx
movzx ecx, byte [esp + 0x3b]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov ebp, eax
mov edx, dword [esi]
push edx
push 4
lea eax, [esp + 0x48]
push 1
push eax
mov byte [esp + 0x50], 0xff
mov byte [esp + 0x51], 0xff
mov byte [esp + 0x52], 0xff
mov byte [esp + 0x53], 0xff
call fcn.00487020
add esp, 0x10
cmp word [esi + 4], di
jne 0x4175a1
movzx ebx, byte [esp + 0x43]
movzx ecx, byte [esp + 0x42]
movzx edx, byte [esp + 0x41]
movzx eax, byte [esp + 0x40]
shl ebx, 8
jmp 0x4175b6
movzx ecx, byte [esp + 0x41]
movzx edx, byte [esp + 0x42]
movzx eax, byte [esp + 0x43]
xor ebx, ebx
mov bh, byte [esp + 0x40]
or ebx, ecx
mov ecx, dword [esi]
push ecx
shl ebx, 8
or ebx, edx
push 4
lea edx, [esp + 0x44]
push 1
shl ebx, 8
push edx
or ebx, eax
mov byte [esp + 0x4c], 0xff
mov byte [esp + 0x4d], 0xff
mov byte [esp + 0x4e], 0xff
mov byte [esp + 0x4f], 0xff
call fcn.00487020
movzx ecx, byte [esp + 0x4d]
add esp, 0x10
cmp word [esi + 4], 0x4949
jne 0x417617
movzx edi, byte [esp + 0x3f]
movzx eax, byte [esp + 0x3e]
movzx edx, byte [esp + 0x3c]
shl edi, 8
or edi, eax
shl edi, 8
or edi, ecx
shl edi, 8
or edi, edx
jmp 0x417635
movzx edx, byte [esp + 0x3e]
xor eax, eax
mov ah, byte [esp + 0x3c]
or eax, ecx
movzx ecx, byte [esp + 0x3f]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov edi, eax
mov edx, dword [esi]
push edx
call fcn.00487c33
mov ecx, dword [esi]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x348]
push 0
add eax, edi
push eax
push ecx
call fcn.00487810
add esp, 0x10
cmp ebp, 0x419
jne 0x41774a
mov edx, dword [esi]
push edx
push 4
lea eax, [esp + 0x70]
push 1
push eax
mov byte [esp + 0x78], 0xff
mov byte [esp + 0x79], 0xff
mov byte [esp + 0x7a], 0xff
mov byte [esp + 0x7b], 0xff
call fcn.00487020
add esp, 0x10
xor edi, edi
lea ecx, [ecx]
mov ecx, esi
call fcn.00410420
mov dword [esp + 0x30], eax
fld dword [esp + 0x30]
fstp dword [esp + edi*4 + 0x90]
inc edi
cmp edi, 8
jl 0x417690
fld dword [esi + 0x7fab4]
xor edi, edi
fsub dword [esp + 0xac]
mov dword [esp + 0x10], edi
fmul dword [esp + 0xa8]
fadd dword [esp + 0x9c]
fadd dword [0x65c2f4]
fstp dword [esp + 0x9c]
lea ebx, [ebx]
fild dword [esp + 0x10]
fld dword [esp + 0xa4]
fmul st(1)
fadd dword [esp + 0x9c]
fmulp st(1)
fadd dword [esp + 0x94]
fcom dword [0x65c1b8]
fnstsw ax
test ah, 5
jp 0x417723
fld dword [0x65c2f0]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x41772b
fstp st(0)
fld dword [0x65c2f0]
jmp 0x41772b
fstp st(0)
fld dword [0x65c1b8]
call fcn.00487bd0
mov word [esp + edi*2 + 0xf4], ax
inc edi
cmp edi, 0x10000
mov dword [esp + 0x10], edi
jl 0x4176e0
jmp 0x4177fd
cmp ebp, 0x41a
jne 0x41789f
xor edi, edi
mov ecx, esi
call fcn.00410420
mov dword [esp + 0x30], eax
fld dword [esp + 0x30]
fstp dword [esp + edi*4 + 0x90]
inc edi
cmp edi, 4
jl 0x417758
xor edi, edi
mov dword [esp + 0x10], edi
lea ebx, [ebx]
fld dword [0x65c2f0]
mov eax, 4
fild dword [esp + 0x10]
nop
fld st(0)
dec eax
fmulp st(2)
fxch st(1)
fadd dword [esp + eax*4 + 0x90]
fxch st(1)
jne 0x417790
faddp st(1)
fcom dword [0x65c1b8]
fnstsw ax
test ah, 5
jp 0x4177ce
fld st(0)
fld dword [0x65c2f0]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x4177ce
fstp st(0)
fld dword [0x65c2f0]
jmp 0x4177e3
fcom dword [0x65c1b8]
fnstsw ax
test ah, 5
jnp 0x4177e3
fstp st(0)
fld dword [0x65c1b8]
call fcn.00487bd0
mov word [esp + edi*2 + 0xf4], ax
inc edi
cmp edi, 0x10000
mov dword [esp + 0x10], edi
jl 0x417780
xor edi, edi
cmp word [esi + 0x43c], di
jbe 0x418430
movzx ecx, word [esi + 0x43e]
mov edx, ebp
and edx, 1
mov dword [esp + 0x30], edx
lea esp, [esp]
mov eax, dword [esi + 0x7faac]
imul eax, edx
cmp eax, ecx
jae 0x41788e
mov edx, edi
and edx, 7
shl edx, 1
movzx ecx, word [esi + 0x444]
movzx ebp, word [esi + 0x448]
mov ebx, edi
shr ebx, cl
imul ebx, ebp
mov ebp, eax
shr ebp, cl
mov ecx, eax
and ecx, 1
add ecx, edx
add ebx, ebp
mov ebp, dword [esi + 0x330]
shl ecx, 1
shr ebp, cl
and ebp, 3
lea ecx, [ebp + ebx*4]
mov ebx, dword [esi + 0x488]
lea ecx, [ebx + ecx*2]
movzx ebx, word [ecx]
mov bx, word [esp + ebx*2 + 0xf4]
mov word [ecx], bx
movzx ecx, word [esi + 0x43e]
inc eax
cmp eax, ecx
jb 0x417834
mov edx, dword [esp + 0x30]
movzx eax, word [esi + 0x43c]
inc edi
cmp edi, eax
jb 0x417820
jmp 0x418430
cmp ebp, 0x400
jne 0x417e77
lea eax, [ebx - 8]
test eax, eax
jl 0x418430
add eax, 8
shr eax, 3
mov dword [esp + 0x30], eax
mov ecx, dword [esi]
push ecx
push 2
lea edx, [esp + 0x22]
push 1
push edx
mov ebx, 0x4949
mov byte [esp + 0x2a], 0xff
mov byte [esp + 0x2b], 0xff
call fcn.00487020
add esp, 0x10
xor eax, eax
cmp word [esi + 4], bx
jne 0x4178f5
mov ah, byte [esp + 0x1b]
mov al, byte [esp + 0x1a]
jmp 0x417901
movzx cx, byte [esp + 0x1b]
mov ah, byte [esp + 0x1a]
or eax, ecx
movzx edx, word [esi + 0x442]
xor ebp, ebp
mov bp, ax
mov eax, dword [esi]
push eax
push 2
lea ecx, [esp + 0x32]
push 1
push ecx
sub ebp, edx
mov dword [esp + 0x2c], ebp
mov byte [esp + 0x3a], 0xff
mov byte [esp + 0x3b], 0xff
call fcn.00487020
add esp, 0x10
xor eax, eax
cmp word [esi + 4], bx
jne 0x417943
mov ah, byte [esp + 0x2b]
mov al, byte [esp + 0x2a]
jmp 0x41794f
movzx dx, byte [esp + 0x2b]
mov ah, byte [esp + 0x2a]
or eax, edx
mov ecx, dword [esi]
xor edi, edi
mov di, ax
movzx eax, word [esi + 0x440]
push ecx
push 2
lea edx, [esp + 0x30]
push 1
push edx
sub edi, eax
mov byte [esp + 0x38], 0xff
mov byte [esp + 0x39], 0xff
call fcn.00487020
add esp, 0x10
xor eax, eax
cmp word [esi + 4], bx
jne 0x41798d
mov ah, byte [esp + 0x29]
mov al, byte [esp + 0x28]
jmp 0x417999
movzx cx, byte [esp + 0x29]
mov ah, byte [esp + 0x28]
or eax, ecx
mov edx, dword [esi]
push edx
push 2
xor ebx, ebx
mov bx, ax
lea eax, [esp + 0x1c]
push 1
push eax
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
call fcn.00487020
movzx eax, word [esi + 0x43e]
add esp, 0x10
cmp ebp, eax
jae 0x417e68
cmp ebx, 0x83
jne 0x417d42
movzx eax, word [esi + 0x43c]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x10], ebx
jbe 0x417e68
and ebp, 1
mov dword [esp + 0x24], ebp
mov ecx, dword [esp + 0x24]
mov edi, dword [esi + 0x330]
mov eax, ebx
and eax, 7
shl eax, 1
add ecx, eax
mov dword [esp + 0x20], eax
shl ecx, 1
mov eax, edi
shr eax, cl
mov dword [esp + 0x48], 0
and eax, 3
cmp eax, 1
mov dword [esp + 0x50], eax
jne 0x417b76
lea edx, [esp + 0xb4]
mov ecx, 0x65d238
mov dword [esp + 0x20], edx
mov dword [esp + 0x50], ecx
lea esp, [esp]
movsx edx, byte [ecx + 1]
mov eax, dword [esp + 0x1c]
movzx ebp, word [esi + 0x43c]
add edx, eax
movsx eax, byte [ecx]
add eax, ebx
cmp eax, ebp
jae 0x417aaf
movzx ebp, word [esi + 0x43e]
cmp edx, ebp
jae 0x417aaf
movzx ebx, word [esi + 0x444]
mov ecx, eax
and ecx, 7
mov ebp, edx
and ebp, 1
lea ecx, [ebp + ecx*2]
shl ecx, 1
mov ebp, edi
shr ebp, cl
mov ecx, ebx
shr eax, cl
movzx ecx, word [esi + 0x448]
imul eax, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0x50]
and ebp, 3
add eax, edx
lea edx, [ebp + eax*4]
mov eax, dword [esi + 0x488]
movzx eax, word [eax + edx*2]
jmp 0x417ab1
xor eax, eax
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x48]
add ecx, 2
mov dword [edx], eax
add ebp, eax
add edx, 4
cmp ecx, 0x65d240
mov dword [esp + 0x48], ebp
mov dword [esp + 0x50], ecx
mov dword [esp + 0x20], edx
jl 0x417a40
xor edi, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x50], edi
lea ecx, [edi*4]
mov eax, dword [esp + ecx + 0xb4]
shl eax, 2
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x50]
mov dword [esp + ecx + 0xd4], eax
cmp dword [esp + edx + 0xd4], eax
jge 0x417b19
mov dword [esp + 0x20], edi
mov dword [esp + 0x50], ecx
inc edi
cmp edi, 4
jl 0x417ae5
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + eax*4 + 0xb4]
movzx edi, word [esi + 0x444]
sub ebp, ecx
mov dword [esp + 0x58], ebp
fild dword [esp + 0x58]
fmul qword [0x65d230]
fadd qword [0x65c2f8]
call fcn.00487bd0
mov ebp, dword [esp + 0x1c]
mov ecx, edi
mov edx, ebx
shr edx, cl
movzx ecx, word [esi + 0x448]
imul edx, ecx
mov ecx, edi
shr ebp, cl
mov ecx, dword [esi + 0x488]
add edx, ebp
mov word [ecx + edx*8 + 2], ax
jmp 0x417d29
mov ecx, 0x65d248
mov dword [esp + 0x58], ecx
nop
movsx edx, byte [ecx + 1]
mov eax, dword [esp + 0x1c]
movzx ebp, word [esi + 0x43c]
add edx, eax
movsx eax, byte [ecx]
add eax, ebx
cmp eax, ebp
jae 0x417bef
movzx ebp, word [esi + 0x43e]
cmp edx, ebp
jae 0x417bef
movzx ebx, word [esi + 0x444]
mov ecx, eax
and ecx, 7
mov ebp, edx
and ebp, 1
lea ecx, [ebp + ecx*2]
shl ecx, 1
mov ebp, edi
shr ebp, cl
mov ecx, ebx
shr eax, cl
movzx ecx, word [esi + 0x448]
imul eax, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0x58]
and ebp, 3
add eax, edx
lea edx, [ebp + eax*4]
mov eax, dword [esi + 0x488]
movzx eax, word [eax + edx*2]
jmp 0x417bf1
xor eax, eax
mov ebp, dword [esp + 0x48]
add ecx, 2
add ebp, eax
cmp ecx, 0x65d250
mov dword [esp + 0x48], ebp
mov dword [esp + 0x58], ecx
jl 0x417b80
mov ecx, dword [esp + 0x1c]
lea eax, [ecx - 2]
movzx ecx, word [esi + 0x43c]
cmp ebx, ecx
jae 0x417c6b
movzx edx, word [esi + 0x43e]
cmp eax, edx
jae 0x417c6b
movzx ecx, word [esi + 0x444]
movzx ebp, word [esi + 0x448]
mov edx, ebx
shr edx, cl
imul edx, ebp
mov ebp, eax
shr ebp, cl
mov ecx, eax
and ecx, 1
mov eax, edi
add edx, ebp
add ecx, dword [esp + 0x20]
shl ecx, 1
shr eax, cl
and eax, 3
lea ecx, [eax + edx*4]
mov edx, dword [esi + 0x488]
movzx eax, word [edx + ecx*2]
mov dword [esp + 0x58], eax
jmp 0x417c73
mov dword [esp + 0x58], 0
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + 2]
movzx ecx, word [esi + 0x43c]
cmp ebx, ecx
jae 0x417cca
movzx edx, word [esi + 0x43e]
cmp eax, edx
jae 0x417cca
movzx ecx, word [esi + 0x444]
movzx ebp, word [esi + 0x448]
mov edx, ebx
shr edx, cl
imul edx, ebp
mov ebp, eax
shr ebp, cl
mov ecx, eax
and ecx, 1
add edx, ebp
add ecx, dword [esp + 0x20]
shl ecx, 1
shr edi, cl
mov ecx, dword [esi + 0x488]
and edi, 3
lea eax, [edi + edx*4]
movzx eax, word [ecx + eax*2]
jmp 0x417ccc
xor eax, eax
mov edx, dword [esp + 0x58]
movzx edi, word [esi + 0x444]
add eax, edx
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fmul qword [0x65d228]
fild dword [esp + 0x48]
fmul qword [0x65d220]
faddp st(1)
fadd qword [0x65c2f8]
call fcn.00487bd0
mov ebp, dword [esp + 0x1c]
mov ecx, edi
mov edx, ebx
shr edx, cl
movzx ecx, word [esi + 0x448]
imul edx, ecx
mov ecx, edi
shr ebp, cl
mov ecx, dword [esp + 0x50]
add edx, ebp
lea edx, [ecx + edx*4]
mov ecx, dword [esi + 0x488]
mov word [ecx + edx*2], ax
movzx eax, word [esi + 0x43c]
inc ebx
cmp ebx, eax
mov dword [esp + 0x10], ebx
jb 0x4179f3
jmp 0x417e68
cmp ebx, 0x81
jne 0x417e68
movzx eax, word [esi + 0x43c]
cmp edi, eax
jae 0x417e68
mov ebx, dword [esi + 0x330]
mov edx, edi
and edx, 7
mov eax, ebp
and eax, 1
lea ecx, [eax + edx*2]
shl ecx, 1
shr ebx, cl
xor eax, eax
mov dword [esp + 0x48], 0
and ebx, 3
cmp ebx, 1
setne al
mov dword [esp + 0x50], ebx
shl eax, 2
lea ecx, [eax + 8]
cmp eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], ecx
jge 0x417e3a
movsx edx, byte [eax*2 + 0x65d239]
movsx eax, byte [eax*2 + 0x65d238]
movzx ecx, word [esi + 0x43c]
add eax, edi
add edx, ebp
cmp eax, ecx
jae 0x417e19
movzx ecx, word [esi + 0x43e]
cmp edx, ecx
jae 0x417e19
movzx ebx, word [esi + 0x444]
mov ecx, eax
and ecx, 7
mov ebp, edx
and ebp, 1
lea ecx, [ebp + ecx*2]
mov ebp, dword [esi + 0x330]
shl ecx, 1
shr ebp, cl
mov ecx, ebx
shr eax, cl
movzx ecx, word [esi + 0x448]
imul eax, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x50]
shr edx, cl
and ebp, 3
add eax, edx
lea edx, [ebp + eax*4]
mov eax, dword [esi + 0x488]
movzx ecx, word [eax + edx*2]
mov ebp, dword [esp + 0x1c]
jmp 0x417e1b
xor ecx, ecx
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
add edx, ecx
mov ecx, dword [esp + 0x24]
inc eax
cmp eax, ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x10], eax
jl 0x417da1
movzx ecx, word [esi + 0x444]
movzx eax, word [esi + 0x448]
mov edx, dword [esp + 0x48]
shr edi, cl
shr ebp, cl
add edx, 4
sar edx, 3
imul edi, eax
mov eax, dword [esi + 0x488]
add edi, ebp
lea ecx, [ebx + edi*4]
mov word [eax + ecx*2], dx
dec dword [esp + 0x30]
jne 0x4178c0
jmp 0x418430
cmp ebp, 0x401
jne 0x418122
mov ecx, dword [esi]
push ecx
push 8
lea edx, [esp + 0x78]
push 2
push edx
call fcn.00487020
add esp, 0x10
cmp eax, 8
jae 0x417ea3
mov ecx, esi
call fcn.00413fa0
push 0x1234
call dword [sym.imp.WS2_32.dll_ntohs]
sub ax, 0x1234
neg ax
sbb eax, eax
xor ecx, ecx
inc eax
cmp word [esi + 4], 0x4949
sete cl
cmp ecx, eax
jne 0x417edb
push 0x10
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x78]
push eax
call fcn.00403ff0
add esp, 0xc
movzx eax, word [esp + 0x74]
movzx ecx, word [esp + 0x78]
cdq
idiv ecx
push 4
lea edx, [eax + eax]
push edx
mov dword [esp + 0x24], eax
call fcn.004874ba
add esp, 8
push str.phase_one_flat_field__
push eax
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.00403aa0
movzx eax, word [esp + 0x76]
movzx ecx, word [esp + 0x7a]
cdq
idiv ecx
mov dword [esp + 0x10], 0
test eax, eax
jbe 0x418119
mov ebp, dword [esp + 0x1c]
xor edi, edi
test ebp, ebp
jbe 0x417f67
mov ebx, dword [esp + 0x20]
push 0xb
mov ecx, esi
call fcn.004107c0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x417f4c
fstp dword [ebx + edi*4]
jmp 0x417f62
movzx edx, word [esp + 0x7a]
fsub dword [ebx + edi*4]
mov dword [esp + 0x24], edx
lea eax, [edi + ebp]
fidiv dword [esp + 0x24]
fstp dword [ebx + eax*4]
inc edi
cmp edi, ebp
jb 0x417f36
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4180fb
movzx ecx, word [esp + 0x7a]
movzx edx, word [esi + 0x440]
imul eax, ecx
sub eax, edx
movzx edx, word [esp + 0x72]
add eax, edx
mov dword [esp + 0x24], eax
sub eax, ecx
movzx ecx, word [esi + 0x43c]
cmp eax, ecx
mov dword [esp + 0x48], eax
jae 0x4180fb
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x48], edx
jae 0x4180fb
mov ecx, dword [esp + 0x1c]
mov eax, 1
cmp ecx, eax
mov dword [esp + 0x50], eax
jbe 0x4180c0
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x50]
fld dword [ecx + ebx*4 - 4]
movzx eax, word [esp + 0x78]
fst dword [esp + 0x30]
movzx edx, word [esp + 0x70]
fld dword [ecx + ebx*4]
fsub dword [esp + 0x30]
movzx ecx, word [esi + 0x442]
imul ebx, eax
mov dword [esp + 0x58], eax
sub ebx, ecx
fidiv dword [esp + 0x58]
add ebx, edx
mov edi, ebx
sub edi, eax
movzx eax, word [esi + 0x43e]
cmp edi, eax
fstp dword [esp + 0xe8]
jae 0x4180a9
cmp edi, ebx
jae 0x4180a9
mov edx, dword [esp + 0x48]
movzx eax, word [esi + 0x444]
mov ecx, edx
and ecx, 7
mov ebp, edi
and ebp, 1
lea ecx, [ebp + ecx*2]
mov ebp, dword [esi + 0x330]
shl ecx, 1
shr ebp, cl
mov ecx, eax
shr edx, cl
movzx ecx, word [esi + 0x448]
imul edx, ecx
mov ecx, edi
mov dword [esp + 0x30], ecx
mov ecx, eax
mov eax, edi
shr eax, cl
and ebp, 3
add edx, eax
mov eax, dword [esi + 0x488]
lea edx, [ebp + edx*4]
movzx ecx, word [eax + edx*2]
lea ebp, [eax + edx*2]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fmul st(1)
call fcn.00487bd0
cmp eax, 0xffff
jb 0x41808e
mov eax, 0xffff
fadd dword [esp + 0xe8]
mov word [ebp], ax
movzx edx, word [esi + 0x43e]
inc edi
cmp edi, edx
jb 0x418018
mov eax, dword [esp + 0x50]
fstp st(0)
mov ecx, dword [esp + 0x1c]
inc eax
cmp eax, ecx
mov dword [esp + 0x50], eax
jb 0x417fc7
mov edx, dword [esp + 0x1c]
xor eax, eax
test edx, edx
jbe 0x4180e3
mov ecx, dword [esp + 0x20]
mov edi, edi
lea edi, [eax + edx]
fld dword [ecx + edi*4]
inc eax
cmp eax, edx
fadd dword [ecx + eax*4 - 4]
fstp dword [ecx + eax*4 - 4]
jb 0x4180d0
mov eax, dword [esp + 0x48]
movzx ecx, word [esi + 0x43c]
inc eax
cmp eax, ecx
mov dword [esp + 0x48], eax
jb 0x417fa4
movzx eax, word [esp + 0x76]
movzx edi, word [esp + 0x7a]
cdq
idiv edi
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, eax
jb 0x417f28
mov edx, dword [esp + 0x20]
jmp 0x418427
cmp ebp, 0x416
je 0x4181a3
cmp ebp, 0x410
je 0x4181a3
cmp ebp, 0x40b
jne 0x41814a
push 4
push 0
mov ecx, esi
call fcn.004187c0
jmp 0x418430
cmp ebp, 0x412
jne 0x418430
mov eax, dword [esi]
push 1
push 0x24
push eax
call fcn.00487810
add esp, 0xc
mov ecx, esi
call fcn.004103d0
mov ebp, dword [esi + 0x7fab0]
mov ecx, dword [esp + 0x64]
movzx eax, ax
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x418430
mov ecx, dword [esi]
push ecx
mov dword [esp + 0x68], eax
call fcn.00487c33
add esp, 4
sub eax, 0x26
mov dword [esp + 0x44], eax
jmp 0x418430
push 8
lea edx, [esp + 0x84]
push edx
mov ecx, esi
call fcn.00410b50
movzx eax, word [esp + 0x84]
movzx ecx, word [esp + 0x88]
cdq
idiv ecx
push 4
mov ebp, eax
lea edx, [ebp + ebp]
push edx
mov dword [esp + 0x24], ebp
call fcn.004874ba
add esp, 8
push str.phase_one_flat_field__
push eax
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.00403aa0
movzx eax, word [esp + 0x86]
movzx ecx, word [esp + 0x8a]
cdq
idiv ecx
xor ebx, ebx
mov dword [esp + 0x48], ebx
test eax, eax
jbe 0x418423
mov edi, edi
xor edi, edi
test ebp, ebp
jbe 0x41825b
mov ecx, esi
call fcn.004103d0
xor edx, edx
test ebx, ebx
mov dx, ax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fmul qword [0x65d218]
jne 0x41823d
fstp dword [eax + edi*4]
jmp 0x418256
movzx ecx, word [esp + 0x8a]
fsub dword [eax + edi*4]
mov dword [esp + 0x24], ecx
lea edx, [edi + ebp]
fidiv dword [esp + 0x24]
fstp dword [eax + edx*4]
inc edi
cmp edi, ebp
jb 0x418216
test ebx, ebx
je 0x418403
movzx edx, word [esp + 0x8a]
movzx ecx, word [esi + 0x440]
mov eax, ebx
imul eax, edx
sub eax, ecx
movzx ecx, word [esp + 0x82]
add eax, ecx
mov ecx, eax
sub ecx, edx
movzx edx, word [esi + 0x43c]
cmp ecx, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
jae 0x418403
jmp 0x4182a8
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
cmp ecx, eax
jae 0x418403
cmp ebp, 1
mov dword [esp + 0x50], 1
jbe 0x4183c0
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x50]
fld dword [ecx + ebx*4 - 4]
movzx eax, word [esp + 0x88]
fst dword [esp + 0x30]
movzx edx, word [esp + 0x80]
fld dword [ecx + ebx*4]
fsub dword [esp + 0x30]
movzx ecx, word [esi + 0x442]
imul ebx, eax
mov dword [esp + 0x58], eax
sub ebx, ecx
fidiv dword [esp + 0x58]
add ebx, edx
mov edi, ebx
sub edi, eax
movzx eax, word [esi + 0x43e]
cmp edi, eax
fstp dword [esp + 0xc8]
jae 0x4183a9
cmp edi, ebx
jae 0x4183a9
mov edx, dword [esp + 0x20]
movzx eax, word [esi + 0x444]
mov ecx, edx
and ecx, 7
mov ebp, edi
and ebp, 1
lea ecx, [ebp + ecx*2]
mov ebp, dword [esi + 0x330]
shl ecx, 1
shr ebp, cl
mov ecx, eax
shr edx, cl
movzx ecx, word [esi + 0x448]
imul edx, ecx
mov ecx, edi
mov dword [esp + 0x30], ecx
mov ecx, eax
mov eax, edi
shr eax, cl
and ebp, 3
add edx, eax
mov eax, dword [esi + 0x488]
lea edx, [ebp + edx*4]
movzx ecx, word [eax + edx*2]
lea ebp, [eax + edx*2]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fmul st(1)
call fcn.00487bd0
cmp eax, 0xffff
jb 0x41838e
mov eax, 0xffff
fadd dword [esp + 0xc8]
mov word [ebp], ax
movzx edx, word [esi + 0x43e]
inc edi
cmp edi, edx
jb 0x418318
mov eax, dword [esp + 0x50]
fstp st(0)
mov ecx, dword [esp + 0x1c]
inc eax
cmp eax, ecx
mov dword [esp + 0x50], eax
jb 0x4182c1
mov edx, dword [esp + 0x1c]
xor eax, eax
test edx, edx
jbe 0x4183e3
mov ecx, dword [esp + 0x10]
mov edi, edi
lea edi, [eax + edx]
fld dword [ecx + edi*4]
inc eax
cmp eax, edx
fadd dword [ecx + eax*4 - 4]
fstp dword [ecx + eax*4 - 4]
jb 0x4183d0
mov eax, dword [esp + 0x20]
movzx ecx, word [esi + 0x43c]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x48]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jb 0x4182a0
movzx eax, word [esp + 0x86]
movzx ecx, word [esp + 0x8a]
cdq
idiv ecx
inc ebx
mov dword [esp + 0x48], ebx
cmp ebx, eax
jb 0x418210
mov edx, dword [esp + 0x10]
push edx
call fcn.00487297
add esp, 4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi]
push 0
push eax
push ecx
call fcn.00487810
mov eax, dword [esp + 0x6c]
add esp, 0xc
test eax, eax
jne 0x4174e0
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4187b4
mov edx, dword [esi]
push 0
push eax
push edx
call fcn.00487810
add esp, 0xc
xor edi, edi
lea ebx, [ebx]
mov ecx, esi
call fcn.00410420
and eax, 0x7fff
mov dword [esp + edi*4 + 0x90], eax
inc edi
cmp edi, 9
jl 0x418470
mov ebp, dword [esp + 0xa0]
mov edi, dword [esp + 0x9c]
imul ebp, dword [esp + 0x98]
mov ebx, dword [esp + 0x94]
imul edi, ebx
lea eax, [edi + ebp]
push 6
push eax
call fcn.004874ba
add esp, 8
test eax, eax
mov dword [esp + 0x30], eax
jne 0x4184da
mov ecx, dword [esi + 8]
push str.phase_one_correct__
push ecx
push str._s:_Out_of_memory_in__s_n
push 0x69aee0
call fcn.00487674
add esp, 0x10
mov edx, dword [esp + 0x30]
lea eax, [edx + edi*4]
mov dword [esp + 0x34], eax
lea eax, [eax + ebp*4]
mov dword [esp + 0x58], eax
lea eax, [eax + edi*2]
mov ecx, esi
mov dword [esp + 0x5c], eax
call fcn.004103d0
xor ebp, ebp
lea esp, [esp]
mov eax, dword [esp + ebp + 0x9c]
imul eax, dword [esp + ebp + 0x94]
test eax, eax
jle 0x418539
mov edi, dword [esp + ebp + 0x30]
mov dword [esp + 0x44], eax
nop
lea esp, [esp]
push 0xb
mov ecx, esi
call fcn.004107c0
fstp dword [edi]
mov eax, dword [esp + 0x44]
add edi, 4
dec eax
mov dword [esp + 0x44], eax
jne 0x418520
add ebp, 4
cmp ebp, 8
jl 0x418500
xor ebp, ebp
mov eax, dword [esp + ebp + 0x9c]
imul eax, dword [esp + ebp + 0x94]
test eax, eax
jle 0x418578
mov edi, dword [esp + ebp + 0x58]
mov dword [esp + 0x44], eax
mov edi, edi
mov ecx, esi
call fcn.004103d0
mov word [edi], ax
mov eax, dword [esp + 0x44]
add edi, 2
dec eax
mov dword [esp + 0x44], eax
jne 0x418560
add ebp, 4
cmp ebp, 8
jl 0x418543
cmp word [esi + 0x43c], 0
mov dword [esp + 0x10], 0
jbe 0x4187a7
movzx eax, word [esi + 0x43e]
lea ecx, [ecx]
test eax, eax
mov dword [esp + 0x1c], 0
jbe 0x41878f
mov eax, dword [esp + 0x10]
fild dword [esp + 0x9c]
and eax, 7
shl eax, 1
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x1c]
movzx ecx, word [esi + 0x43a]
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], 0
mov dword [esp + 0x2c], ecx
fild qword [esp + 0x50]
fmul st(1)
fidiv dword [esp + 0x2c]
fld st(0)
call fcn.00487bd0
movzx ecx, word [esi + 0x444]
mov edx, dword [esp + 0x10]
movzx ebp, word [esi + 0x448]
shr edx, cl
mov dword [esp + 0x2c], eax
fisub dword [esp + 0x2c]
imul edx, ebp
mov ebp, edi
shr ebp, cl
mov ecx, edi
mov edi, dword [esi + 0x330]
and ecx, 1
add edx, ebp
add ecx, dword [esp + 0x20]
shl ecx, 1
shr edi, cl
and edi, 3
lea ecx, [edi + edx*4]
mov edx, dword [esi + 0x488]
lea ecx, [edx + ecx*2]
mov dword [esp + 0x24], ecx
movzx ecx, word [ecx]
mov dword [esp + 0x2c], ecx
lea ecx, [eax + 2]
cmp eax, ecx
fild dword [esp + 0x2c]
fmul qword [0x65c2f8]
jge 0x418718
mov edx, eax
imul edx, ebx
lea edi, [esp + 0x68]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x58]
mov ebp, edx
lea edx, [edi + edx*2]
sub ecx, eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ecx
xor ecx, ecx
xor edx, edx
test ebx, ebx
jle 0x4186cf
mov edi, dword [esp + 0x60]
movzx eax, word [edi]
mov dword [esp + 0x2c], eax
lea edx, [ecx + ebp]
fild dword [esp + 0x2c]
fld st(1)
fcompp
fnstsw ax
test ah, 5
jnp 0x4186a4
inc ecx
add edi, 2
cmp ecx, ebx
jl 0x418683
test ecx, ecx
je 0x4186cf
cmp ecx, ebx
je 0x4186cf
mov ecx, dword [esp + 0x58]
movzx eax, word [ecx + edx*2]
movzx ecx, word [ecx + edx*2 - 2]
mov dword [esp + 0x2c], eax
sub eax, ecx
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
fsub st(1)
fidiv dword [esp + 0x2c]
jmp 0x4186d5
fld dword [0x65c2f0]
fld dword [0x65c2f4]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x60]
fsub st(1)
add ebp, ebx
fmul dword [eax + edx*4]
fxch st(1)
fmul dword [eax + edx*4 - 4]
mov eax, dword [esp + 0x44]
add eax, 4
mov dword [esp + 0x44], eax
faddp st(1)
fstp dword [eax - 4]
lea eax, [ebx + ebx]
add ecx, eax
mov eax, dword [esp + 0x64]
dec eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
jne 0x418677
fld dword [0x65c2f4]
movzx edx, word [esi + 0x440]
mov edi, dword [esp + 0x10]
fsub st(2)
add edx, edi
fmul dword [esp + 0x68]
mov dword [esp + 0x48], edx
fld dword [esp + 0x6c]
mov dword [esp + 0x4c], 0
fmul st(3)
faddp st(1)
fimul dword [esp + 0x48]
fadd st(1)
fadd st(0), st(0)
call fcn.00487bd0
fstp st(0)
cmp eax, 0xffff
fstp st(0)
jge 0x418769
xor ecx, ecx
test eax, eax
setl cl
dec ecx
and eax, ecx
jmp 0x41876e
mov eax, 0xffff
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov word [edx], ax
movzx eax, word [esi + 0x43e]
inc ecx
cmp ecx, eax
mov dword [esp + 0x1c], ecx
jb 0x4185c4
fstp st(0)
mov ecx, dword [esp + 0x10]
movzx edx, word [esi + 0x43c]
inc ecx
cmp ecx, edx
mov dword [esp + 0x10], ecx
jb 0x4185a0
mov eax, dword [esp + 0x30]
push eax
call fcn.00487297
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x200e4
ret