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

Disassembly:
mov eax, 0x20080
call fcn.10002fa0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x20090]
push edi
mov dword [esp + 0x34], 0x7fffffff
mov eax, dword [esi + 0x84]
mov dword [esp + 0x18], 0
test eax, eax
jne 0x100a1285
mov eax, dword [esi + 0x65a0]
test eax, eax
je 0x100a1285
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x100a0842
mov eax, dword [sym.imp.MSVCRT.dll__iob]
push str.Phase_One_correction..._n
add eax, 0x40
push eax
call dword [sym.imp.MSVCRT.dll_fprintf]
add esp, 8
mov edx, dword [esi + 0x6594]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push 0
push edx
push eax
call dword [ecx + 8]
push esi
call fcn.1009c5e0
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push 1
push 6
push edx
mov word [esi + 0x6244], ax
call dword [ecx + 8]
mov edi, dword [esi]
add esp, 0x1c
push 0
push esi
call fcn.1009c680
mov ecx, dword [esi + 0x6594]
add esp, 4
add eax, ecx
push eax
mov eax, dword [esi + 4]
push eax
call dword [edi + 8]
push esi
call fcn.1009c680
push esi
mov edi, eax
call fcn.1009c680
add esp, 0x14
mov ecx, edi
dec edi
test ecx, ecx
je 0x100a1285
inc edi
mov dword [esp + 0x30], edi
push esi
call fcn.1009c680
push esi
mov ebp, eax
call fcn.1009c680
push esi
mov ebx, eax
call fcn.1009c680
mov edx, dword [esi]
mov edi, eax
mov eax, dword [esi + 4]
push eax
call dword [edx + 0x18]
mov edx, dword [esi + 0x6594]
mov ecx, dword [esi]
add edi, edx
mov edx, dword [esi + 4]
push 0
push edi
push edx
mov dword [esp + 0x30], eax
call dword [ecx + 8]
add esp, 0x1c
cmp ebp, 0x419
jne 0x100a09a4
push esi
call fcn.1009c680
add esp, 4
lea edi, [esp + 0x44]
mov ebx, 8
push 0xb
push esi
call fcn.1009c700
fstp dword [edi]
add esp, 8
add edi, 4
dec ebx
jne 0x100a0909
fld dword [esi + 0x6240]
fsub dword [esp + 0x60]
xor edi, edi
lea ebx, [esp + 0x90]
mov dword [esp + 0x10], edi
fmul dword [esp + 0x5c]
fadd dword [esp + 0x50]
fadd dword [0x100cd3e0]
fstp dword [esp + 0x50]
fild dword [esp + 0x10]
fld st(0)
fmul dword [esp + 0x58]
fadd dword [esp + 0x50]
fmulp st(1)
fadd dword [esp + 0x48]
fcom dword [0x100ed978]
fnstsw ax
test ah, 1
je 0x100a097f
fld dword [0x100cd3a4]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x100a0987
fstp st(0)
fld dword [0x100cd3a4]
jmp 0x100a0987
fstp st(0)
fld dword [0x100ed978]
call sub.MSVCRT.dll__ftol
mov word [ebx], ax
inc edi
add ebx, 2
cmp edi, 0x10000
mov dword [esp + 0x10], edi
jl 0x100a0945
jmp 0x100a0a58
cmp ebp, 0x41a
jne 0x100a0b06
lea edi, [esp + 0x44]
mov ebx, 4
push 0xb
push esi
call fcn.1009c700
fstp dword [edi]
add esp, 8
add edi, 4
dec ebx
jne 0x100a09b9
xor edi, edi
lea ebx, [esp + 0x90]
mov dword [esp + 0x10], edi
fld dword [0x100cd3a4]
fild dword [esp + 0x10]
lea ecx, [esp + 0x50]
mov eax, 4
fld st(0)
fmulp st(2)
fxch st(1)
dec eax
sub ecx, 4
test eax, eax
fadd dword [ecx + 4]
fxch st(1)
ja 0x100a09ec
faddp st(1)
fcom dword [0x100ed978]
fnstsw ax
test ah, 1
je 0x100a0a2b
fld st(0)
fld dword [0x100cd3a4]
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x100a0a2b
fstp st(0)
fld dword [0x100cd3a4]
jmp 0x100a0a40
fcom dword [0x100ed978]
fnstsw ax
test ah, 1
jne 0x100a0a40
fstp st(0)
fld dword [0x100ed978]
call sub.MSVCRT.dll__ftol
mov word [ebx], ax
inc edi
add ebx, 2
cmp edi, 0x10000
mov dword [esp + 0x10], edi
jl 0x100a09d9
xor edi, edi
cmp word [esi + 0x65fc], di
jbe 0x100a0f06
mov ecx, ebp
and ecx, 1
mov dword [esp + 0x2c], ecx
mov eax, dword [esi + 0x6238]
xor edx, edx
imul eax, ecx
mov dx, word [esi + 0x65fe]
cmp eax, edx
jae 0x100a0aef
mov edx, edi
and edx, 7
shl edx, 1
xor ecx, ecx
mov ebx, edi
mov cx, word [esi + 0x6604]
xor ebp, ebp
mov bp, word [esi + 0x6608]
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 + 0x657c]
shl ecx, 1
shr ebp, cl
and ebp, 3
lea ecx, [ebp + ebx*4]
mov ebx, dword [esi + 0x6628]
lea ecx, [ebx + ecx*2]
xor ebx, ebx
inc eax
mov bx, word [ecx]
mov bx, word [esp + ebx*2 + 0x90]
mov word [ecx], bx
xor ecx, ecx
mov cx, word [esi + 0x65fe]
cmp eax, ecx
jb 0x100a0a8d
mov ecx, dword [esp + 0x2c]
xor edx, edx
inc edi
mov dx, word [esi + 0x65fc]
cmp edi, edx
jb 0x100a0a70
jmp 0x100a0f06
cmp ebp, 0x400
jne 0x100a0e7e
sub ebx, 8
js 0x100a0f06
lea eax, [ebx + 8]
shr eax, 3
mov dword [esp + 0x2c], eax
push esi
call fcn.1009c5e0
mov bx, ax
xor eax, eax
mov ax, word [esi + 0x6602]
and ebx, 0xffff
push esi
sub ebx, eax
call fcn.1009c5e0
mov bp, ax
xor ecx, ecx
mov cx, word [esi + 0x6600]
and ebp, 0xffff
push esi
sub ebp, ecx
call fcn.1009c5e0
mov di, ax
push esi
and edi, 0xffff
call fcn.1009c5e0
xor edx, edx
add esp, 0x10
mov dx, word [esi + 0x65fe]
cmp ebx, edx
jae 0x100a0e6a
cmp edi, 0x83
jne 0x100a0d95
xor ebp, ebp
cmp word [esi + 0x65fc], bp
jbe 0x100a0e6a
mov eax, ebx
and eax, 1
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x38]
mov eax, ebp
mov edx, dword [esi + 0x657c]
and eax, 7
mov dword [esp + 0x10], 0
lea edi, [ecx + eax*2]
shl edi, 1
mov ecx, edi
mov dword [esp + 0x28], edi
shr edx, cl
and edx, 3
cmp dl, 1
jne 0x100a0cc9
lea eax, [esp + 0x68]
mov edi, 0x100eac28
mov dword [esp + 0x1c], eax
movsx ecx, byte [edi + 1]
movsx edx, byte [edi]
add ecx, ebx
add edx, ebp
push ecx
push edx
push esi
call fcn.100a0340
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
add edi, 2
add esp, 0xc
mov dword [ecx], eax
add edx, eax
add ecx, 4
cmp edi, 0x100eac30
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ecx
jl 0x100a0be3
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x10]
lea edi, [ecx*4]
mov eax, dword [esp + edi + 0x68]
shl eax, 2
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + edi + 0x80], eax
cmp dword [esp + edx + 0x80], eax
jge 0x100a0c5a
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edi
inc ecx
cmp ecx, 4
jl 0x100a0c25
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
xor edi, edi
mov edx, dword [esp + ecx*4 + 0x68]
mov di, word [esi + 0x6604]
sub eax, edx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul qword [0x100ed970]
fadd qword [0x100cd390]
call sub.MSVCRT.dll__ftol
mov edx, ebp
mov ecx, edi
shr edx, cl
xor ecx, ecx
mov cx, word [esi + 0x6608]
imul edx, ecx
mov dword [esp + 0x20], edx
mov edx, ebx
mov ecx, edi
mov edi, dword [esp + 0x20]
shr edx, cl
mov ecx, dword [esp + 0x28]
add edi, edx
mov edx, dword [esi + 0x657c]
shr edx, cl
and edx, 3
lea ecx, [edx + edi*4]
jmp 0x100a0d74
mov edi, 0x100eac38
movsx eax, byte [edi + 1]
movsx ecx, byte [edi]
add eax, ebx
add ecx, ebp
push eax
push ecx
push esi
call fcn.100a0340
mov edx, dword [esp + 0x1c]
add edi, 2
add esp, 0xc
add edx, eax
cmp edi, 0x100eac40
mov dword [esp + 0x10], edx
jl 0x100a0cce
lea edx, [ebx - 2]
xor eax, eax
mov ax, word [esi + 0x6604]
push edx
push ebp
push esi
mov dword [esp + 0x28], eax
call fcn.100a0340
mov edi, eax
lea eax, [ebx + 2]
push eax
push ebp
push esi
call fcn.100a0340
add edi, eax
add esp, 0x18
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
fmul qword [0x100ed968]
fild dword [esp + 0x10]
fmul qword [0x100ed960]
faddp st(1)
fadd qword [0x100cd390]
call sub.MSVCRT.dll__ftol
mov ecx, dword [esp + 0x1c]
mov edx, ebp
shr edx, cl
xor edi, edi
mov di, word [esi + 0x6608]
imul edx, edi
mov edi, ebx
shr edi, cl
mov ecx, dword [esp + 0x28]
add edx, edi
mov edi, dword [esi + 0x657c]
shr edi, cl
and edi, 3
lea ecx, [edi + edx*4]
mov edx, dword [esi + 0x6628]
inc ebp
mov word [edx + ecx*2], ax
xor eax, eax
mov ax, word [esi + 0x65fc]
cmp ebp, eax
jb 0x100a0ba6
jmp 0x100a0e6a
cmp edi, 0x81
jne 0x100a0e6a
xor ecx, ecx
mov cx, word [esi + 0x65fc]
cmp ebp, ecx
jae 0x100a0e6a
mov edx, ebp
mov eax, ebx
and edx, 7
and eax, 1
mov dword [esp + 0x10], 0
lea edi, [eax + edx*2]
mov eax, dword [esi + 0x657c]
shl edi, 1
mov ecx, edi
mov dword [esp + 0x28], edi
shr eax, cl
and eax, 3
dec al
neg al
sbb eax, eax
neg eax
shl eax, 2
lea ecx, [eax + 8]
cmp eax, ecx
jge 0x100a0e2b
sub ecx, eax
lea edi, [eax*2 + 0x100eac28]
mov dword [esp + 0x20], ecx
movsx ecx, byte [edi + 1]
movsx edx, byte [edi]
add ecx, ebx
add edx, ebp
push ecx
push edx
push esi
call fcn.100a0340
mov edx, dword [esp + 0x1c]
add esp, 0xc
add edx, eax
mov eax, dword [esp + 0x20]
add edi, 2
dec eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
jne 0x100a0df9
mov edi, dword [esp + 0x28]
xor ecx, ecx
xor edx, edx
mov cx, word [esi + 0x6604]
mov dx, word [esi + 0x6608]
shr ebp, cl
mov eax, dword [esp + 0x10]
shr ebx, cl
mov ecx, edi
add eax, 4
imul ebp, edx
mov edx, dword [esi + 0x657c]
add ebp, ebx
shr edx, cl
sar eax, 3
and edx, 3
lea ecx, [edx + ebp*4]
mov edx, dword [esi + 0x6628]
mov word [edx + ecx*2], ax
mov eax, dword [esp + 0x2c]
dec eax
mov dword [esp + 0x2c], eax
jne 0x100a0b25
jmp 0x100a0f06
cmp ebp, 0x401
jne 0x100a0e8c
push 2
push 1
jmp 0x100a0efd
cmp ebp, 0x416
je 0x100a0ef9
cmp ebp, 0x410
je 0x100a0ef9
cmp ebp, 0x40b
jne 0x100a0ea8
push 4
jmp 0x100a0efb
cmp ebp, 0x412
jne 0x100a0f06
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push 1
push 0x24
push ecx
call dword [eax + 8]
push esi
call fcn.1009c5e0
mov ebp, dword [esi + 0x623c]
and eax, 0xffff
mov ecx, dword [esp + 0x44]
sub eax, ebp
cdq
xor eax, edx
add esp, 0x10
sub eax, edx
cmp ecx, eax
jle 0x100a0f06
mov edx, dword [esi]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 4]
push eax
call dword [edx + 0x18]
add esp, 4
sub eax, 0x26
mov dword [esp + 0x18], eax
jmp 0x100a0f06
push 2
push 0
push esi
call fcn.100a03c0
add esp, 0xc
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push 0
push edx
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x3c]
add esp, 0xc
dec eax
mov dword [esp + 0x30], eax
jne 0x100a08af
mov eax, dword [esp + 0x18]
test eax, eax
je 0x100a1285
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push 0
push eax
push edx
call dword [ecx + 8]
add esp, 0xc
lea edi, [esp + 0x44]
mov ebx, 9
push esi
call fcn.1009c680
and eax, 0x7fff
add esp, 4
mov dword [edi], eax
add edi, 4
dec ebx
jne 0x100a0f4c
mov ebp, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x48]
imul ebp, dword [esp + 0x4c]
imul edi, ebx
push 6
lea eax, [edi + ebp]
push eax
call dword [sym.imp.MSVCRT.dll_calloc]
push str.phase_one_correct__
push eax
push esi
mov dword [esp + 0x34], eax
call fcn.1009c4b0
mov ecx, dword [esp + 0x34]
push esi
lea eax, [ecx + edi*4]
mov dword [esp + 0x3c], eax
lea ebp, [eax + ebp*4]
mov dword [esp + 0x54], ebp
lea edx, [ebp + edi*2]
mov dword [esp + 0x58], edx
call fcn.1009c5e0
add esp, 0x18
xor ebp, ebp
mov eax, dword [esp + ebp + 0x50]
imul eax, dword [esp + ebp + 0x48]
test eax, eax
jle 0x100a0fe7
mov edi, dword [esp + ebp + 0x20]
mov dword [esp + 0x18], eax
push 0xb
push esi
call fcn.1009c700
fstp dword [edi]
mov eax, dword [esp + 0x20]
add esp, 8
add edi, 4
dec eax
mov dword [esp + 0x18], eax
jne 0x100a0fcc
add ebp, 4
cmp ebp, 8
jl 0x100a0fb7
xor ebp, ebp
mov eax, dword [esp + ebp + 0x50]
imul eax, dword [esp + ebp + 0x48]
test eax, eax
jle 0x100a1020
mov edi, dword [esp + ebp + 0x3c]
mov dword [esp + 0x18], eax
push esi
call fcn.1009c5e0
mov word [edi], ax
mov eax, dword [esp + 0x1c]
add esp, 4
add edi, 2
dec eax
mov dword [esp + 0x18], eax
jne 0x100a1006
add ebp, 4
cmp ebp, 8
jl 0x100a0ff1
cmp word [esi + 0x65fc], 0
mov dword [esp + 0x10], 0
jbe 0x100a1277
cmp word [esi + 0x65fe], 0
mov dword [esp + 0x1c], 0
jbe 0x100a125d
mov eax, dword [esp + 0x10]
fild dword [esp + 0x50]
and eax, 7
shl eax, 1
mov dword [esp + 0x38], eax
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], edi
xor eax, eax
fild qword [esp + 0x78]
mov ax, word [esi + 0x65fa]
mov dword [esp + 0x14], eax
fmul st(1)
fidiv dword [esp + 0x14]
fld st(0)
call sub.MSVCRT.dll__ftol
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov cx, word [esi + 0x6604]
xor ebp, ebp
mov bp, word [esi + 0x6608]
mov dword [esp + 0x14], eax
shr edx, cl
fisub dword [esp + 0x14]
imul edx, ebp
mov ebp, edi
shr ebp, cl
mov ecx, edi
mov edi, dword [esi + 0x657c]
and ecx, 1
add edx, ebp
mov ebp, dword [esp + 0x38]
add ecx, ebp
shl ecx, 1
shr edi, cl
and edi, 3
lea ecx, [edi + edx*4]
mov edx, dword [esi + 0x6628]
lea ecx, [edx + ecx*2]
xor edx, edx
mov dword [esp + 0x2c], ecx
mov dx, word [ecx]
mov dword [esp + 0x14], edx
lea edx, [eax + 2]
fild dword [esp + 0x14]
cmp eax, edx
fmul qword [0x100cd390]
jge 0x100a11dc
mov ecx, eax
lea edi, [eax*4]
imul ecx, ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x3c]
mov ebp, ecx
sub edx, eax
lea ecx, [edi + ecx*2]
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], ecx
xor edx, edx
xor ecx, ecx
test ebx, ebx
jle 0x100a1187
mov edi, dword [esp + 0x28]
xor eax, eax
lea ecx, [edx + ebp]
mov ax, word [edi]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fld st(1)
fcompp
fnstsw ax
test ah, 1
jne 0x100a1158
inc edx
add edi, 2
cmp edx, ebx
jl 0x100a1135
test edx, edx
je 0x100a1187
cmp edx, ebx
je 0x100a1187
mov edx, dword [esp + 0x3c]
xor eax, eax
xor edi, edi
mov ax, word [edx + ecx*2]
mov di, word [edx + ecx*2 - 2]
mov dword [esp + 0x14], eax
sub eax, edi
fild dword [esp + 0x14]
mov dword [esp + 0x14], eax
fsub st(1)
fidiv dword [esp + 0x14]
jmp 0x100a118d
fld dword [0x100cd3a4]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x34]
fld dword [0x100cd3e0]
mov eax, edx
add edx, 4
fsub st(1)
sub eax, edi
mov edi, dword [esp + 0x20]
add ebp, ebx
mov dword [esp + 0x18], edx
fmul dword [edi + ecx*4]
fxch st(1)
fmul dword [edi + ecx*4 - 4]
mov ecx, dword [esp + 0x28]
faddp st(1)
fstp dword [esp + eax + 0x80]
lea eax, [ebx + ebx]
add ecx, eax
mov eax, dword [esp + 0x30]
dec eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], eax
jne 0x100a1129
fld dword [0x100cd3e0]
fsub st(2)
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov cx, word [esi + 0x6600]
mov dword [esp + 0x6c], 0
fmul dword [esp + 0x80]
fld dword [esp + 0x84]
fmul st(3)
add ecx, edx
mov dword [esp + 0x68], ecx
faddp st(1)
fimul dword [esp + 0x68]
fadd st(1)
fadd st(0), st(0)
call sub.MSVCRT.dll__ftol
fstp st(0)
cmp eax, 0xffff
fstp st(0)
jge 0x100a1235
xor edx, edx
test eax, eax
setl dl
dec edx
and eax, edx
jmp 0x100a123a
mov eax, 0xffff
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov word [ecx], ax
mov eax, dword [esp + 0x1c]
mov dx, word [esi + 0x65fe]
inc eax
cmp eax, edx
mov dword [esp + 0x1c], eax
jb 0x100a1065
fstp st(0)
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov cx, word [esi + 0x65fc]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x100a103e
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20080
ret