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

Disassembly:
sub esp, 0x58
mov eax, dword [0x10583760]
xor eax, esp
mov dword [esp + 0x54], eax
cmp dword [esp + 0x60], 0
push esi
mov esi, dword [esp + 0x60]
push edi
mov edi, ecx
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x38], ecx
mov eax, dword [edi + 0x1c]
mov dword [ecx], eax
jne 0x101c5437
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x54]
xor ecx, esp
call fcn.101f6477
add esp, 0x58
ret 0x1c
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x6c]
push ebx
mov ebx, dword [edi + 0x18]
push ebp
mov ebp, dword [esp + 0x7c]
cmp dword [edi + 0x30], ebp
mov dword [esp + 0x18], eax
cmovl ebp, dword [edi + 0x30]
cmp dword [edi + 0x34], ecx
mov eax, dword [esp + 0x78]
cmovl ecx, dword [edi + 0x34]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x28], ecx
mov ecx, dword [edi + 0x24]
push eax
call fcn.10176050
mov ecx, dword [edi + 0x24]
lea eax, [esp + 0x38]
push eax
call fcn.10176070
mov ecx, dword [esp + 0x10]
cmp ecx, dword [eax]
je 0x101c5555
xor edi, edi
nop
mov esi, dword [esp + 0x24]
push ebp
push dword [esp + 0x1c]
mov esi, dword [esi + 0x28]
add esi, edi
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov eax, dword [esp + 0x18]
push dword [eax + 0x114]
call fcn.1018b610
push dword [esp + 0x34]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x20]
push dword [esp + 0x24]
push dword [eax + 0x118]
call fcn.1018b610
mov ecx, dword [esi + 0x1c]
add esp, 0x18
imul ecx, dword [esi + 8]
mov dword [esi + 0xc], eax
imul ecx, eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xd], 0
lea ebx, [ebx + ecx*2]
jne 0x101c552d
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x101c550c
mov eax, dword [ecx]
cmp byte [eax + 0xd], 0
jne 0x101c5529
nop word [eax + eax]
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0xd], 0
je 0x101c5500
jmp 0x101c5529
mov ecx, dword [eax + 4]
cmp byte [ecx + 0xd], 0
jne 0x101c5529
cmp eax, dword [ecx + 8]
jne 0x101c5529
mov eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 4]
cmp byte [ecx + 0xd], 0
je 0x101c5515
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x38]
add edi, 0x20
push eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x24]
call fcn.10176070
mov ecx, dword [esp + 0x10]
cmp ecx, dword [eax]
jne 0x101c5490
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
cmp dword [edi + 0x20], 0
mov dword [esp + 0x18], 0
jle 0x101c57b7
xor eax, eax
mov dword [esp + 0x20], eax
nop dword [eax]
mov edi, dword [edi + 0x28]
add edi, eax
cmp dword [edi + 0x14], 1
je 0x101c55b5
mov esi, dword [edi + 0x1c]
imul esi, dword [edi + 0xc]
mov ebp, dword [esp + 0x70]
imul esi, dword [edi + 8]
add esi, esi
cmp ebp, esi
jl 0x101c5966
mov ebx, dword [esp + 0x1c]
push esi
push ebx
push dword [edi]
call fcn.101f8da0
add ebx, esi
add esp, 0xc
sub ebp, esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x70], ebp
jmp 0x101c5793
xor eax, eax
mov dword [esp + 0x38], eax
cmp dword [edi + 0xc], eax
jle 0x101c5793
mov ebp, 1
mov dword [esp + 0x10], ebp
nop dword [eax]
mov edx, dword [edi + 8]
xor ebx, ebx
mov ecx, edx
imul ecx, eax
mov eax, dword [edi]
lea eax, [eax + ecx*2]
mov dword [esp + 0x2c], eax
lea eax, [eax + edx*2]
mov dword [esp + 0x30], eax
lea eax, [eax + edx*2]
mov dword [esp + 0x34], eax
lea eax, [eax + edx*2]
mov dword [esp + 0x3c], eax
test edx, edx
jle 0x101c5774
mov ebp, dword [esp + 0x70]
cmp ebp, 3
jl 0x101c5966
cmp byte [esi + 2], 0xfc
jne 0x101c566c
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
shl ax, 8
or ax, cx
mov word [esp + 0x44], ax
mov ecx, dword [esp + 0x44]
test ecx, 0x8000
je 0x101c563c
mov ecx, 0x7fff
and ax, cx
jmp 0x101c5640
mov eax, ecx
not eax
mov word [esp + 0x44], ax
mov ecx, 1
nop word [eax + eax]
mov word [esp + ecx*2 + 0x44], ax
inc ecx
cmp ecx, 0x10
jge 0x101c5662
mov ax, word [esp + 0x44]
jmp 0x101c5650
sub ebp, 3
mov eax, 3
jmp 0x101c568b
cmp ebp, 0xe
jl 0x101c5966
lea eax, [esp + 0x44]
push eax
push esi
call fcn.101c5fa0
add esp, 8
mov eax, 0xe
sub ebp, 0xe
add esi, eax
mov dword [esp + 0x70], ebp
cmp byte [edi + 0x18], 0
mov dword [esp + 0x1c], esi
je 0x101c56a8
lea eax, [esp + 0x44]
push eax
call fcn.101c5a00
add esp, 4
mov esi, dword [edi + 8]
lea eax, [ebx + 3]
cmp eax, esi
jge 0x101c56b9
mov esi, 8
jmp 0x101c56bd
sub esi, ebx
add esi, esi
mov eax, dword [esp + 0x10]
add eax, 2
cmp eax, dword [edi + 0xc]
lea eax, [esp + 0x44]
push esi
push eax
push dword [esp + 0x34]
jge 0x101c570d
call fcn.101f8da0
push esi
lea eax, [esp + 0x5c]
push eax
push dword [esp + 0x44]
call fcn.101f8da0
push esi
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x54]
call fcn.101f8da0
push esi
lea eax, [esp + 0x84]
push eax
push dword [esp + 0x68]
call fcn.101f8da0
add esp, 0x30
jmp 0x101c574c
call fcn.101f8da0
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, dword [edi + 0xc]
jge 0x101c5734
push esi
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x38]
call fcn.101f8da0
mov eax, dword [esp + 0x1c]
add esp, 0xc
inc eax
cmp eax, dword [edi + 0xc]
jge 0x101c574c
push esi
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x3c]
call fcn.101f8da0
add esp, 0xc
add dword [esp + 0x2c], 8
add ebx, 4
add dword [esp + 0x30], 8
add dword [esp + 0x34], 8
add dword [esp + 0x3c], 8
mov esi, dword [esp + 0x1c]
cmp ebx, dword [edi + 8]
jl 0x101c5604
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
add ebp, 4
mov esi, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], ebp
cmp eax, dword [edi + 0xc]
jl 0x101c55d0
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
inc eax
add dword [esp + 0x20], 0x20
mov dword [esp + 0x18], eax
cmp eax, dword [edi + 0x20]
jge 0x101c57b7
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
jmp 0x101c5570
cmp dword [edi + 0x10], 1
mov ebx, dword [edi + 0x1c]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], ebx
jne 0x101c58aa
cmp ecx, eax
jg 0x101c593c
nop dword [eax + eax]
xor ebp, ebp
cmp dword [edi + 0x20], ebp
jle 0x101c5898
xor eax, eax
mov dword [esp + 0x18], eax
mov edi, dword [edi + 0x28]
add edi, eax
mov esi, dword [edi + 0x10]
test ecx, ecx
js 0x101c5806
mov eax, ecx
cdq
idiv esi
mov ecx, eax
jmp 0x101c581c
mov eax, esi
test esi, esi
js 0x101c5811
sub eax, ecx
dec eax
jmp 0x101c5815
not eax
sub eax, ecx
cdq
idiv esi
mov ecx, eax
neg ecx
mov eax, dword [esp + 0x14]
imul ecx, esi
sub eax, ecx
jne 0x101c5877
cmp dword [edi + 0x14], 1
jne 0x101c5857
mov esi, dword [edi + 8]
test esi, esi
jle 0x101c5877
mov eax, dword [edi + 4]
movzx eax, word [eax]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.1019f4f0
add dword [edi + 4], 2
dec esi
add esp, 8
test esi, esi
jg 0x101c5834
mov ebx, dword [esp + 0x20]
jmp 0x101c5877
mov eax, dword [edi + 0x1c]
imul eax, dword [edi + 8]
lea esi, [eax + eax]
push esi
push dword [edi + 4]
push ebx
call fcn.101f8da0
add ebx, esi
add esp, 0xc
add dword [edi + 4], esi
mov dword [esp + 0x20], ebx
mov edi, dword [esp + 0x24]
inc ebp
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add eax, 0x20
mov dword [esp + 0x18], eax
cmp ebp, dword [edi + 0x20]
jl 0x101c57f1
mov eax, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, eax
jle 0x101c57e0
jmp 0x101c593c
cmp ecx, eax
jg 0x101c593c
xor ebp, ebp
cmp dword [edi + 0x20], ebp
jle 0x101c592f
xor eax, eax
mov dword [esp + 0x18], eax
nop
mov edi, dword [edi + 0x28]
add edi, eax
mov esi, dword [edi + 0x10]
test ecx, ecx
js 0x101c58d5
mov eax, ecx
cdq
idiv esi
mov ecx, eax
jmp 0x101c58eb
mov eax, esi
test esi, esi
js 0x101c58e0
sub eax, ecx
dec eax
jmp 0x101c58e4
not eax
sub eax, ecx
cdq
idiv esi
mov ecx, eax
neg ecx
mov eax, dword [esp + 0x14]
imul ecx, esi
sub eax, ecx
jne 0x101c5912
mov eax, dword [edi + 0x1c]
imul eax, dword [edi + 8]
lea esi, [eax + eax]
push esi
push dword [edi + 4]
push ebx
call fcn.101f8da0
add esp, 0xc
add ebx, esi
add dword [edi + 4], esi
mov edi, dword [esp + 0x24]
inc ebp
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add eax, 0x20
mov dword [esp + 0x18], eax
cmp ebp, dword [edi + 0x20]
jl 0x101c58c0
mov eax, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, eax
jle 0x101c58b2
cmp dword [esp + 0x70], 0
jg 0x101c596b
mov eax, dword [esp + 0x40]
mov ecx, dword [edi + 0x1c]
pop ebp
mov dword [eax], ecx
sub ebx, dword [edi + 0x1c]
mov ecx, dword [esp + 0x60]
mov eax, ebx
pop ebx
pop edi
pop esi
xor ecx, esp
call fcn.101f6477
add esp, 0x58
ret 0x1c
call fcn.101c5a60
call fcn.101c5f60
int3