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

Disassembly:
mov eax, 0x2007c
call fcn.10059010
mov eax, dword [0x101b0cd0]
xor eax, esp
mov dword [esp + 0x20078], eax
push esi
mov esi, dword [esp + 0x20084]
cmp dword [esi + 0xb4], 0
mov dword [esp + 0x24], closesocket
mov dword [esp + 0x18], 0
jne 0x100d242a
cmp dword [esi + 0x65d4], 0
je 0x100d242a
cmp dword [esi + 0xbc], 0
je 0x100d1919
push 0x1016b5f4
call fcn.1005a8d7
add eax, 0x40
push eax
call fcn.1015203d
add esp, 8
mov ecx, dword [esi + 0x65c8]
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [eax + 8]
push edi
push 0
push ecx
push edx
call eax
push esi
call fcn.100cd370
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push 1
mov word [esi + 0x6274], ax
mov eax, dword [ecx + 8]
push 6
push edx
call eax
mov edi, dword [esi]
add esp, 0x1c
push 0
push esi
call fcn.100cd410
add eax, dword [esi + 0x65c8]
mov ecx, dword [esi + 4]
mov edx, dword [edi + 8]
add esp, 4
push eax
push ecx
call edx
push esi
call fcn.100cd410
mov edi, eax
push esi
mov dword [esp + 0x38], edi
call fcn.100cd410
add esp, 0x14
test edi, edi
je 0x100d2429
push ebx
push ebp
lea esp, [esp]
dec dword [esp + 0x2c]
push esi
call fcn.100cd410
push esi
mov ebp, eax
call fcn.100cd410
push esi
mov ebx, eax
call fcn.100cd410
mov ecx, dword [esi + 4]
mov edi, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
push ecx
call edx
mov ecx, dword [esi + 0x65c8]
mov edx, dword [esi + 4]
mov dword [esp + 0x44], eax
mov eax, dword [esi]
mov eax, dword [eax + 8]
push 0
add ecx, edi
push ecx
push edx
call eax
add esp, 0x1c
cmp ebp, 0x419
jne 0x100d1af6
push esi
call fcn.100cd410
add esp, 4
xor edi, edi
jmp 0x100d19f0
push 0xb
push esi
call fcn.100cd490
fstp dword [esp + edi*4 + 0x6c]
inc edi
add esp, 8
cmp edi, 8
jl 0x100d19f0
fld dword [esi + 0x6270]
xor ecx, ecx
fsub dword [esp + 0x80]
mov dword [esp + 0x10], ecx
fmul dword [esp + 0x7c]
fadd qword [0x101a3808]
fadd dword [esp + 0x70]
fstp dword [esp + 0x70]
fld dword [esp + 0x78]
fld dword [esp + 0x70]
fld dword [esp + 0x68]
fld dword [0x1016b5f0]
fld qword [0x10162968]
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(0)
fmul st(6)
fadd st(5)
fmulp st(1)
fadd st(3)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x100d1a6f
fst dword [esp + 0x18]
jmp 0x100d1a77
fxch st(2)
fst dword [esp + 0x18]
fxch st(2)
fld dword [esp + 0x18]
fcomp qword [0x101a3810]
fnstsw ax
test ah, 5
jp 0x100d1a92
fstp st(0)
fldz
fstp dword [esp + 0x10]
jmp 0x100d1aab
fcom st(1)
fnstsw ax
test ah, 5
jp 0x100d1aa1
fstp dword [esp + 0x10]
jmp 0x100d1aab
fstp st(0)
fxch st(1)
fst dword [esp + 0x10]
fxch st(1)
fld dword [esp + 0x10]
inc ecx
fnstcw word [esp + 0x14]
mov dword [esp + 0x10], ecx
movzx eax, word [esp + 0x14]
or eax, 0xc00
cmp ecx, 0x10000
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp dword [esp + 0x20]
mov dx, word [esp + 0x20]
mov word [esp + ecx*2 + 0x86], dx
fldcw word [esp + 0x14]
jl 0x100d1a42
fstp st(0)
fstp st(3)
fstp st(1)
jmp 0x100d1bbe
cmp ebp, 0x41a
jne 0x100d1c6f
xor edi, edi
push 0xb
push esi
call fcn.100cd490
fstp dword [esp + edi*4 + 0x6c]
inc edi
add esp, 8
cmp edi, 4
jl 0x100d1b04
fld qword [0x10162968]
xor ecx, ecx
fldz
mov dword [esp + 0x10], ecx
fldz
jmp 0x100d1b2d
fxch st(1)
fxch st(1)
mov eax, 4
fst dword [esp + 0x14]
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(0)
sub eax, 1
fmul dword [esp + 0x14]
fadd dword [esp + eax*4 + 0x64]
fstp dword [esp + 0x14]
jne 0x100d1b44
fadd dword [esp + 0x14]
fcom st(3)
fnstsw ax
test ah, 5
jp 0x100d1b73
fcom st(2)
fnstsw ax
test ah, 5
jp 0x100d1b73
fstp st(0)
fld st(1)
jmp 0x100d1b80
fcom st(3)
fnstsw ax
test ah, 5
jnp 0x100d1b80
fstp st(0)
fld st(2)
fnstcw word [esp + 0x14]
inc ecx
movzx eax, word [esp + 0x14]
or eax, 0xc00
cmp ecx, 0x10000
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], ecx
fldcw word [esp + 0x20]
fistp dword [esp + 0x20]
mov ax, word [esp + 0x20]
mov word [esp + ecx*2 + 0x86], ax
fldcw word [esp + 0x14]
jl 0x100d1b2b
fstp st(2)
xor ecx, ecx
fstp st(0)
xor edi, edi
fstp st(0)
cmp cx, word [esi + 0x66b4]
jae 0x100d2082
mov ecx, ebp
and ecx, 1
mov dword [esp + 0x20], ecx
lea esp, [esp]
mov eax, dword [esi + 0x6268]
movzx edx, word [esi + 0x66b6]
imul eax, ecx
cmp eax, edx
jae 0x100d1c5a
mov edx, edi
and edx, 7
add edx, edx
jmp 0x100d1c00
movzx ecx, word [esi + 0x66bc]
movzx ebp, word [esi + 0x66c0]
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 + 0x65b0]
add ecx, ecx
shr ebp, cl
inc eax
and ebp, 3
lea ecx, [ebp + ebx*4]
mov ebx, dword [esi + 0x66e0]
lea ecx, [ebx + ecx*2]
movzx ebx, word [ecx]
mov bx, word [esp + ebx*2 + 0x88]
mov word [ecx], bx
movzx ecx, word [esi + 0x66b6]
cmp eax, ecx
jb 0x100d1c00
mov ecx, dword [esp + 0x20]
movzx edx, word [esi + 0x66b4]
inc edi
cmp edi, edx
jb 0x100d1be0
jmp 0x100d2082
cmp ebp, 0x400
jne 0x100d1ffc
sub ebx, 8
js 0x100d2082
lea eax, [ebx + 8]
shr eax, 3
mov dword [esp + 0x20], eax
mov edi, edi
push esi
call fcn.100cd370
movzx ebx, ax
movzx eax, word [esi + 0x66ba]
push esi
sub ebx, eax
call fcn.100cd370
movzx ecx, word [esi + 0x66b8]
movzx edi, ax
push esi
sub edi, ecx
call fcn.100cd370
push esi
movzx ebp, ax
call fcn.100cd370
movzx edx, word [esi + 0x66b6]
add esp, 0x10
cmp ebx, edx
jae 0x100d1fec
cmp ebp, 0x83
jne 0x100d1f28
xor eax, eax
mov dword [esp + 0x10], 0
cmp ax, word [esi + 0x66b4]
jae 0x100d1fec
fld qword [0x1016b5e8]
mov eax, ebx
fld qword [0x1016b5e0]
and eax, 1
fld qword [0x101a3838]
mov dword [esp + 0x1c], eax
fld qword [0x10161e30]
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0x65b0]
mov ecx, ebp
and ecx, 7
lea ecx, [edx + ecx*2]
add ecx, ecx
shr eax, cl
and eax, 3
mov dword [esp + 0x28], eax
cmp eax, 1
jne 0x100d1e53
lea eax, [esp + 0x44]
xor ebp, ebp
mov dword [esp + 0x18], eax
mov edi, 0x101681f0
movsx ecx, byte [edi + 1]
movsx edx, byte [edi]
add edx, dword [esp + 0x10]
add ecx, ebx
push ecx
push edx
push esi
call fcn.100d1420
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
add edi, 2
add ecx, 4
add esp, 0xc
add ebp, eax
cmp edi, 0x101681f8
mov dword [esp + 0x18], ecx
jl 0x100d1d52
mov eax, dword [esp + 0x44]
add eax, eax
add eax, eax
sub eax, ebp
cdq
mov ecx, eax
mov eax, dword [esp + 0x48]
add eax, eax
add eax, eax
xor ecx, edx
sub eax, ebp
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
xor edi, edi
cmp ecx, eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
jge 0x100d1db7
mov edi, 1
mov eax, dword [esp + 0x4c]
add eax, eax
add eax, eax
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x5c], eax
cmp dword [esp + edi*4 + 0x54], eax
jge 0x100d1dd5
mov edi, 2
mov eax, dword [esp + 0x50]
add eax, eax
add eax, eax
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x60], eax
cmp dword [esp + edi*4 + 0x54], eax
jge 0x100d1df3
mov edi, 3
sub ebp, dword [esp + edi*4 + 0x44]
fnstcw word [esp + 0x14]
movzx ecx, word [esi + 0x66bc]
mov dword [esp + 0x18], ebp
movzx eax, word [esp + 0x14]
fild dword [esp + 0x18]
mov edx, dword [esp + 0x10]
movzx edi, word [esi + 0x66c0]
fdiv st(1)
shr edx, cl
or eax, 0xc00
mov dword [esp + 0x18], eax
fadd st(2)
imul edx, edi
fldcw word [esp + 0x18]
mov edi, ebx
fistp dword [esp + 0x18]
mov ax, word [esp + 0x18]
shr edi, cl
mov ecx, dword [esi + 0x66e0]
fldcw word [esp + 0x14]
add edx, edi
mov word [ecx + edx*8 + 2], ax
jmp 0x100d1f03
mov dword [esp + 0x14], 0
mov edi, 0x10168200
movsx edx, byte [edi + 1]
movsx eax, byte [edi]
add edx, ebx
push edx
add eax, ebp
push eax
push esi
call fcn.100d1420
add dword [esp + 0x20], eax
add edi, 2
add esp, 0xc
cmp edi, 0x10168208
jl 0x100d1e60
lea ecx, [ebx - 2]
push ecx
push ebp
push esi
call fcn.100d1420
lea edx, [ebx + 2]
push edx
push ebp
push esi
mov edi, eax
call fcn.100d1420
movzx ecx, word [esi + 0x66bc]
movzx edx, word [esi + 0x66c0]
add edi, eax
mov dword [esp + 0x30], edi
shr ebp, cl
add esp, 0x18
fild dword [esp + 0x18]
fmul st(3)
fild dword [esp + 0x14]
imul ebp, edx
fnstcw word [esp + 0x14]
fmul st(5)
fadd st(3)
movzx eax, word [esp + 0x14]
faddp st(1)
or eax, 0xc00
mov dword [esp + 0x18], eax
mov edx, ebx
shr edx, cl
fldcw word [esp + 0x18]
mov ecx, dword [esp + 0x28]
fistp dword [esp + 0x18]
add ebp, edx
lea edx, [ecx + ebp*4]
mov ecx, dword [esi + 0x66e0]
mov ax, word [esp + 0x18]
mov word [ecx + edx*2], ax
fldcw word [esp + 0x14]
mov eax, dword [esp + 0x10]
movzx edx, word [esi + 0x66b4]
inc eax
mov dword [esp + 0x10], eax
cmp eax, edx
jb 0x100d1d19
fstp st(1)
fstp st(1)
fstp st(1)
fstp st(0)
jmp 0x100d1fec
cmp ebp, 0x81
jne 0x100d1fec
movzx eax, word [esi + 0x66b4]
cmp edi, eax
jae 0x100d1fec
mov eax, dword [esi + 0x65b0]
mov ecx, edi
and ecx, 7
mov edx, ebx
and edx, 1
lea ecx, [edx + ecx*2]
add ecx, ecx
shr eax, cl
xor ecx, ecx
mov dword [esp + 0x14], 0
and eax, 3
cmp eax, 1
setne cl
mov dword [esp + 0x28], eax
add ecx, ecx
add ecx, ecx
mov ebp, ecx
lea eax, [ebp + 8]
cmp ebp, eax
mov dword [esp + 0x1c], eax
jge 0x100d1fba
jmp 0x100d1f90
movsx edx, byte [ebp*2 + 0x101681f1]
movsx eax, byte [ebp*2 + 0x101681f0]
add edx, ebx
push edx
add eax, edi
push eax
push esi
call fcn.100d1420
add dword [esp + 0x20], eax
inc ebp
add esp, 0xc
cmp ebp, dword [esp + 0x1c]
jl 0x100d1f90
movzx ecx, word [esi + 0x66bc]
movzx eax, word [esi + 0x66c0]
mov edx, dword [esp + 0x14]
shr edi, cl
shr ebx, cl
mov ecx, dword [esp + 0x28]
add edx, 4
imul edi, eax
sar edx, 3
add edi, ebx
lea eax, [ecx + edi*4]
mov ecx, dword [esi + 0x66e0]
mov word [ecx + eax*2], dx
sub dword [esp + 0x20], 1
jne 0x100d1c90
jmp 0x100d2082
cmp ebp, 0x401
jne 0x100d200a
push 2
push 1
jmp 0x100d2079
cmp ebp, 0x416
je 0x100d2075
cmp ebp, 0x410
je 0x100d2075
cmp ebp, 0x40b
jne 0x100d2026
push 4
jmp 0x100d2077
cmp ebp, 0x412
jne 0x100d2082
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push 1
push 0x24
push eax
call ecx
push esi
call fcn.100cd370
movzx eax, ax
sub eax, dword [esi + 0x626c]
add esp, 0x10
cdq
xor eax, edx
sub eax, edx
cmp dword [esp + 0x30], eax
jle 0x100d2082
mov edx, dword [esi]
mov ecx, dword [edx + 0x18]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 4]
push eax
call ecx
add esp, 4
sub eax, 0x26
mov dword [esp + 0x24], eax
jmp 0x100d2082
push 2
push 0
push esi
call fcn.100d1490
add esp, 0xc
mov eax, dword [esp + 0x34]
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx + 8]
push 0
push eax
push ecx
call edx
add esp, 0xc
cmp dword [esp + 0x2c], 0
jne 0x100d1990
mov eax, dword [esp + 0x24]
test eax, eax
je 0x100d2427
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push 0
push eax
mov eax, dword [ecx + 8]
push edx
call eax
add esp, 0xc
xor edi, edi
push esi
call fcn.100cd410
and eax, 0x7fff
mov dword [esp + edi*4 + 0x68], eax
inc edi
add esp, 4
cmp edi, 9
jl 0x100d20c1
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
imul ebp, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
imul edi, ebx
lea ecx, [edi + ebp]
push 6
push ecx
call fcn.100565db
push str.phase_one_correct__
push eax
push esi
mov dword [esp + 0x50], eax
call fcn.100cd240
mov edx, dword [esp + 0x50]
lea eax, [edx + edi*4]
lea ebp, [eax + ebp*4]
mov dword [esp + 0x54], eax
lea eax, [ebp + edi*2]
push esi
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], eax
call fcn.100cd370
add esp, 0x18
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + ecx + 0x68]
imul edx, dword [esp + ecx + 0x70]
lea eax, [esp + ecx + 0x70]
lea ecx, [esp + ecx + 0x68]
test edx, edx
jle 0x100d2175
mov edx, dword [esp + 0x10]
mov ebp, dword [ecx]
mov edi, dword [esp + edx + 0x3c]
imul ebp, dword [eax]
lea esp, [esp]
push 0xb
push esi
call fcn.100cd490
fstp dword [edi]
add esp, 8
add edi, 4
sub ebp, 1
jne 0x100d2160
mov eax, dword [esp + 0x10]
add eax, 4
cmp eax, 8
mov dword [esp + 0x10], eax
jl 0x100d2133
xor eax, eax
mov dword [esp + 0x24], eax
jmp 0x100d2190
mov edi, dword [esp + eax + 0x68]
imul edi, dword [esp + eax + 0x70]
lea edx, [esp + eax + 0x68]
lea ecx, [esp + eax + 0x70]
test edi, edi
jle 0x100d21c8
mov ebp, dword [edx]
mov edi, dword [esp + eax + 0x44]
imul ebp, dword [ecx]
mov edi, edi
push esi
call fcn.100cd370
mov word [edi], ax
add esp, 4
add edi, 2
sub ebp, 1
jne 0x100d21b0
mov eax, dword [esp + 0x24]
add eax, 4
cmp eax, 8
mov dword [esp + 0x24], eax
jl 0x100d2190
xor eax, eax
mov dword [esp + 0x10], 0
cmp ax, word [esi + 0x66b4]
jae 0x100d241a
fld qword [0x10161e40]
fld1
fld qword [0x101a3838]
fldz
xor ecx, ecx
mov dword [esp + 0x18], 0
cmp cx, word [esi + 0x66b6]
jae 0x100d23fa
mov eax, dword [esp + 0x10]
fild dword [esp + 0x70]
and eax, 7
add eax, eax
fstp dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x18]
mov edx, edi
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
test edx, edx
jge 0x100d223f
fadd dword [0x10161be8]
movzx eax, word [esi + 0x66b2]
fmul dword [esp + 0x34]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fdivp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fld st(0)
call fcn.10059580
movzx ecx, word [esi + 0x66bc]
mov edx, dword [esp + 0x10]
movzx ebp, word [esi + 0x66c0]
shr edx, cl
mov dword [esp + 0x1c], eax
fisub dword [esp + 0x1c]
imul edx, ebp
fstp dword [esp + 0x28]
mov ebp, edi
shr ebp, cl
mov ecx, edi
mov edi, dword [esi + 0x65b0]
and ecx, 1
add ecx, dword [esp + 0x20]
add edx, ebp
add ecx, ecx
shr edi, cl
and edi, 3
lea ecx, [edi + edx*4]
mov edx, dword [esi + 0x66e0]
lea ecx, [edx + ecx*2]
mov dword [esp + 0x38], ecx
movzx ecx, word [ecx]
mov dword [esp + 0x1c], ecx
lea edx, [eax + 2]
cmp eax, edx
fild dword [esp + 0x1c]
fmul st(2)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
jge 0x100d2387
mov ecx, eax
imul ecx, ebx
lea edi, [esp + 0x54]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x44]
mov ebp, ecx
lea ecx, [edi + ecx*2]
sub edx, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
xor ecx, ecx
xor edx, edx
test ebx, ebx
jle 0x100d2348
mov edi, dword [esp + 0x2c]
movzx eax, word [edi]
mov dword [esp + 0x1c], eax
lea edx, [ecx + ebp]
fild dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x100d231d
inc ecx
add edi, 2
cmp ecx, ebx
jl 0x100d22fe
test ecx, ecx
je 0x100d2348
cmp ecx, ebx
je 0x100d2348
mov ecx, dword [esp + 0x44]
movzx eax, word [ecx + edx*2]
movzx ecx, word [ecx + edx*2 - 2]
mov dword [esp + 0x1c], eax
sub eax, ecx
fild dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
fsub st(1)
fidiv dword [esp + 0x1c]
jmp 0x100d234a
fld st(1)
mov eax, dword [esp + 0x3c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
add ebp, ebx
fld st(0)
fsubr st(5)
fmul dword [eax + edx*4]
fld dword [eax + edx*4 - 4]
mov eax, dword [esp + 0x24]
fmulp st(2)
add eax, 4
mov dword [esp + 0x24], eax
faddp st(1)
fstp dword [eax - 4]
lea eax, [ebx + ebx]
add dword [esp + 0x2c], eax
sub dword [esp + 0x30], 1
jne 0x100d22f2
fld dword [esp + 0x28]
movzx edx, word [esi + 0x66b8]
add edx, dword [esp + 0x10]
fld st(0)
fsubr st(5)
fmul dword [esp + 0x54]
mov dword [esp + 0x1c], edx
fld dword [esp + 0x58]
fmulp st(2)
faddp st(1)
fild dword [esp + 0x1c]
test edx, edx
jge 0x100d23b8
fadd dword [0x10161be8]
fmulp st(1)
faddp st(1)
fmul st(4)
call fcn.10059580
cmp eax, 0xffff
jge 0x100d23d6
xor ecx, ecx
test eax, eax
setl cl
dec ecx
and eax, ecx
jmp 0x100d23db
mov eax, 0xffff
mov edx, dword [esp + 0x38]
mov word [edx], ax
mov eax, dword [esp + 0x18]
movzx ecx, word [esi + 0x66b6]
inc eax
mov dword [esp + 0x18], eax
cmp eax, ecx
jb 0x100d2227
mov eax, dword [esp + 0x10]
movzx edx, word [esi + 0x66b4]
inc eax
mov dword [esp + 0x10], eax
cmp eax, edx
jb 0x100d21fb
fstp st(2)
fstp st(2)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x3c]
push eax
call fcn.10054ff5
add esp, 4
pop ebp
pop ebx
pop edi
mov ecx, dword [esp + 0x2007c]
pop esi
xor ecx, esp
call fcn.1005392f
add esp, 0x2007c
ret