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

Disassembly:
sub esp, 0x8c
mov edx, dword [esp + 0x90]
push ebx
push ebp
push esi
mov ecx, dword [edx]
mov esi, dword [esp + 0xa0]
mov edx, dword [edx + 0x14]
push edi
mov ebp, dword [ecx + 0x68]
movsx edi, word [esi + 2]
mov ebx, dword [ecx + 0x2e4]
add edi, 4
cmp byte [ecx + 0x2e1], 0
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x80], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x34], 0
je 0x101c8f88
test ebx, ebx
je 0x101c8f88
xor ecx, ecx
test edi, edi
je 0x101c8614
mov ebp, dword [esp + 0xa8]
nop dword [eax]
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*8]
shl eax, 6
mov dword [ebp + ecx*8], eax
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*8 + 4]
shl eax, 6
mov dword [ebp + ecx*8 + 4], eax
inc ecx
cmp ecx, edi
jb 0x101c85f0
mov ebp, dword [esp + 0x30]
cmp edx, dword [ebx + 0x44]
jae 0x101c8f7b
mov ecx, dword [ebx + 0x48]
lea esi, [edx*4]
mov eax, dword [ecx + esi]
cmp eax, dword [ecx + esi + 4]
je 0x101c8f7b
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 8
push dword [esp + 0x28]
call fcn.101b5720
add esp, 0x18
mov dword [esp + 0x40], eax
cmp dword [esp + 0x10], 0
jne 0x101c8f47
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 8
push dword [esp + 0x28]
call fcn.101b5720
add esp, 0x18
mov dword [esp + 0x20], eax
cmp dword [esp + 0x10], 0
jne 0x101c8f47
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 1
push dword [esp + 0x28]
call fcn.101b5720
add esp, 0x18
mov dword [esp + 0x44], eax
cmp dword [esp + 0x10], 0
jne 0x101c8f47
mov ecx, dword [ebx + 0x48]
mov edx, dword [ecx + esi]
mov esi, dword [ecx + esi + 4]
push edx
push ebp
sub esi, edx
call fcn.101b3bb0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x101c8f47
push esi
push ebp
call fcn.101b3120
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x101c8f47
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x10]
push eax
push 0
push dword [ebx]
push 0
push 4
push dword [esp + 0x28]
call fcn.101b5720
add esp, 0x18
mov dword [esp + 0x50], eax
cmp dword [esp + 0x10], 0
jne 0x101c8f10
lea eax, [esp + 0x10]
push eax
push 0
push dword [ebx]
push 0
push 4
push dword [esp + 0x28]
call fcn.101b5720
add esp, 0x18
mov dword [esp + 0x54], eax
cmp dword [esp + 0x10], 0
jne 0x101c8f10
lea eax, [esp + 0x10]
push eax
push 0
push dword [ebx]
push 0
push 4
push dword [esp + 0x28]
call fcn.101b5720
add esp, 0x18
mov dword [esp + 0x48], eax
cmp dword [esp + 0x10], 0
jne 0x101c8f10
push ebp
call fcn.101b3350
movzx eax, ax
push ebp
mov dword [esp + 0x68], eax
call fcn.101b3350
movzx edx, ax
add esp, 8
cmp edx, esi
ja 0x101c8f08
mov ecx, dword [esp + 0x60]
mov eax, ecx
and eax, 0xfff
mov dword [esp + 0x60], eax
shl eax, 2
cmp eax, esi
ja 0x101c8f08
add edx, dword [esp + 0x5c]
mov dword [esp + 0x24], edx
test ecx, 0x8000
je 0x101c8801
mov edx, dword [ebp + 0x24]
mov eax, edx
mov ecx, dword [ebp]
sub eax, ecx
mov esi, dword [ebp + 0x20]
sub esi, ecx
cmp dword [esp + 0x24], eax
jae 0x101c87c9
mov edx, dword [esp + 0x24]
add edx, ecx
lea eax, [esp + 0x80]
mov dword [ebp + 0x20], edx
push eax
push dword [ebx + 0x4c]
push ebp
call fcn.101ca1d0
mov ecx, dword [ebp + 0x20]
add esp, 0xc
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x64], eax
mov eax, dword [ebp]
sub ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, edx
sub ecx, eax
cmp esi, ecx
jae 0x101c87fe
lea edx, [eax + esi]
mov dword [ebp + 0x20], edx
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 4
push esi
call fcn.101b5720
add esp, 0x18
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x10], 0
jne 0x101c8ee2
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 4
push esi
call fcn.101b5720
add esp, 0x18
mov edx, eax
cmp dword [esp + 0x10], 0
mov dword [esp + 0x34], edx
jne 0x101c8ee2
xor ecx, ecx
test edi, edi
je 0x101c888d
mov esi, dword [esp + 0xa4]
mov ebx, dword [esp + 0x40]
add esi, 4
mov eax, dword [esi]
mov eax, dword [eax + ecx*8]
shl eax, 0x10
mov dword [ebx + ecx*8], eax
mov eax, dword [esi]
mov eax, dword [eax + ecx*8 + 4]
shl eax, 0x10
mov dword [ebx + ecx*8 + 4], eax
inc ecx
cmp ecx, edi
jb 0x101c8863
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0xa4]
jmp 0x101c8897
mov eax, dword [esp + 0xa4]
lea esi, [eax + 4]
cmp dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
jbe 0x101c8d4c
nop word [eax + eax]
push ebp
call fcn.101b3350
push ebp
mov word [esp + 0x72], ax
call fcn.101b3350
movzx esi, ax
add esp, 8
mov dword [esp + 0x58], eax
mov dword [esp + 0x1c], esi
test esi, 0x8000
je 0x101c89ce
xor esi, esi
cmp dword [ebx], esi
jbe 0x101c88fe
mov edi, dword [esp + 0x50]
push ebp
call fcn.101b3350
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
cmp esi, dword [ebx]
jb 0x101c88e5
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
test esi, 0x4000
je 0x101c895d
mov eax, dword [ebx]
xor esi, esi
test eax, eax
je 0x101c8931
mov edi, dword [esp + 0x54]
push ebp
call fcn.101b3350
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
mov eax, dword [ebx]
cmp esi, eax
jb 0x101c8916
mov edi, dword [esp + 0x18]
xor esi, esi
test eax, eax
je 0x101c8959
mov edi, dword [esp + 0x48]
nop dword [eax + eax]
push ebp
call fcn.101b3350
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
cmp esi, dword [ebx]
jb 0x101c8940
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
push dword [esp + 0x48]
push dword [esp + 0x58]
push dword [esp + 0x58]
push dword [esp + 0x64]
push ebx
call fcn.101c9290
add esp, 0x14
mov dword [esp + 0x1c], eax
test eax, eax
je 0x101c8d22
mov ecx, dword [ebp]
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x24]
sub eax, ecx
mov dword [esp + 0x98], eax
mov eax, edx
sub eax, ecx
cmp dword [esp + 0x24], eax
jae 0x101c89a4
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [ebp + 0x20], edx
test esi, 0x2000
je 0x101c8a04
lea eax, [esp + 0x38]
push eax
push dword [ebx + 0x4c]
push ebp
call fcn.101ca1d0
mov dword [esp + 0x78], eax
add esp, 0xc
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
jmp 0x101c8a17
mov edx, esi
and edx, 0xfff
cmp edx, dword [ebx + 0x3c]
jae 0x101c8d82
mov ecx, dword [ebx]
imul edx, ecx
lea eax, [ecx*4]
push eax
mov eax, dword [ebx + 0x40]
lea eax, [eax + edx*4]
push eax
push dword [esp + 0x58]
call fcn.101219d0
add esp, 0xc
jmp 0x101c8902
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], eax
test eax, eax
mov esi, eax
cmove esi, edi
push esi
push dword [ebx + 0x4c]
push ebp
call fcn.101ca080
push esi
push dword [ebx + 0x4c]
mov dword [esp + 0x84], eax
push ebp
call fcn.101ca080
mov edx, dword [esp + 0x40]
add esp, 0x18
mov ecx, eax
mov dword [esp + 0x58], ecx
test edx, edx
je 0x101c8cd1
test ecx, ecx
je 0x101c8cd1
mov eax, dword [esp + 0x70]
test eax, eax
je 0x101c8cd1
cmp edx, 0xffffffff
jne 0x101c8b39
test edi, edi
je 0x101c8cd1
mov ebx, dword [esp + 0x3c]
sub eax, ecx
mov edx, dword [esp + 0x34]
sub ecx, ebx
sub edx, ebx
mov dword [esp + 0x78], eax
mov ebp, ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x28], edi
mov edi, dword [ebp]
lea esi, [ecx + ebp]
mov eax, dword [esi + eax]
mov ebx, dword [edx + ebp]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x8c], eax
mov eax, dword [esi]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x8c]
lea ebp, [ebp + 4]
mov edx, dword [esp + 0x88]
add eax, edi
mov ecx, dword [esp + 0x2c]
mov dword [ebp - 4], eax
mov eax, dword [esp + 0x84]
add eax, ebx
sub dword [esp + 0x28], 1
mov dword [edx + ebp - 4], eax
mov eax, dword [esp + 0x78]
jne 0x101c8a96
jmp 0x101c8cc5
xor esi, esi
test edi, edi
je 0x101c8b7d
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
sub edi, edx
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x44]
mov byte [esi + ebp], 0
lea edx, [edx + 8]
mov eax, dword [edx + edi - 8]
inc esi
mov ecx, dword [edx + edi - 4]
mov dword [edx - 8], eax
mov dword [edx - 4], ecx
cmp esi, ebx
jb 0x101c8b51
mov ebp, dword [esp + 0x30]
mov edi, ebx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x70]
xor esi, esi
cmp dword [esp + 0x38], esi
jbe 0x101c8c53
mov ebp, eax
mov edi, ecx
mov eax, dword [esp + 0x18]
sub ebp, ecx
mov ecx, dword [esp + 0x38]
nop word [eax + eax]
movzx ebx, word [edx + esi*2]
cmp ebx, eax
jae 0x101c8c3f
mov eax, dword [esp + 0x44]
mov byte [ebx + eax], 1
mov eax, dword [edi + ebp]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + ebx*8]
add eax, dword [esp + 0x90]
mov dword [ecx + ebx*8], eax
mov eax, dword [edi]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x28]
add dword [ecx + ebx*8 + 4], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
inc esi
add edi, 4
cmp esi, ecx
jb 0x101c8ba0
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
push dword [esp + 0x44]
push dword [esp + 0x44]
push dword [esp + 0x28]
push dword [esp + 0xb0]
call fcn.101cc4a0
add esp, 0x10
xor ebx, ebx
test edi, edi
je 0x101c8ccd
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x34]
sub ebp, eax
mov dword [esp + 0x78], ebp
lea edi, [eax + 4]
mov eax, dword [esp + 0x3c]
sub eax, esi
mov dword [esp + 0x2c], eax
mov ecx, dword [edi + ebp]
lea edi, [edi + 8]
mov eax, dword [esp + 0x20]
lea esi, [esi + 4]
sub ecx, dword [edi - 8]
mov edx, dword [esi - 4]
mov ebp, dword [esp + 0x2c]
mov eax, dword [eax + ebx*8]
inc ebx
sub eax, dword [edi - 0xc]
add dword [esi + ebp - 4], eax
lea eax, [ecx + edx]
mov ebp, dword [esp + 0x78]
mov dword [esi - 4], eax
cmp ebx, dword [esp + 0x18]
jb 0x101c8c93
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x101c8cf0
push eax
push esi
call fcn.101b55b0
add esp, 8
mov dword [esp + 0x6c], 0
push dword [esp + 0x70]
push esi
call fcn.101b55b0
push dword [esp + 0x60]
push esi
call fcn.101b55b0
mov ecx, dword [ebp + 0x24]
add esp, 0x10
mov edx, dword [ebp]
mov eax, ecx
mov esi, dword [esp + 0x98]
sub eax, edx
cmp esi, eax
jae 0x101c8d1f
lea ecx, [edx + esi]
mov dword [ebp + 0x20], ecx
mov ecx, dword [esp + 0x5c]
movzx eax, word [esp + 0x6a]
inc ecx
add dword [esp + 0x24], eax
mov dword [esp + 0x5c], ecx
cmp ecx, dword [esp + 0x60]
jb 0x101c88b0
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x34]
lea esi, [eax + 4]
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x3c]
test byte [ebx + 0x2e8], 2
je 0x101c8d8f
mov dword [ecx + edi*4 - 0x10], 0
add eax, 4
mov dword [edx + edi*4 - 0x10], 0
mov dword [ecx + edi*4 - 0xc], 0
mov dword [edx + edi*4 - 0xc], 0
jmp 0x101c8d91
mov dword [esp + 0x10], 8
jmp 0x101c8ee2
mov eax, esi
test byte [ebx + 0x2e8], 0x10
je 0x101c8dbc
mov dword [ecx + edi*4 - 8], 0
mov esi, eax
mov dword [edx + edi*4 - 8], 0
mov dword [ecx + edi*4 - 4], 0
mov dword [edx + edi*4 - 4], 0
mov ebx, dword [esp + 0x18]
xor edi, edi
test ebx, ebx
je 0x101c8e30
mov ebp, dword [esp + 0xa4]
mov esi, ecx
sub esi, dword [esp + 0x34]
mov eax, dword [edx + esi]
lea edx, [edx + 4]
mov ecx, dword [esp + 0xa8]
add eax, 0x200
sar eax, 0xa
add dword [ecx + edi*8], eax
mov eax, dword [edx - 4]
add eax, 0x200
sar eax, 0xa
add dword [ecx + edi*8 + 4], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + edi*8]
mov eax, dword [edx + esi - 4]
add eax, 0x8000
shr eax, 0x10
cwde
add dword [ecx], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + edi*8]
mov eax, dword [edx - 4]
add eax, 0x8000
inc edi
shr eax, 0x10
cwde
add dword [ecx + 4], eax
cmp edi, ebx
jb 0x101c8dd3
lea esi, [ebp + 4]
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0xa0]
test byte [eax + 0x2e8], 2
jne 0x101c8e89
mov eax, dword [esi]
mov ecx, dword [eax + ebx*8 - 0x20]
mov eax, dword [eax + ebx*8 - 0x1c]
mov dword [edi + 0x48], eax
mov dword [edi + 0x44], ecx
mov eax, dword [esi]
mov ecx, dword [eax + ebx*8 - 0x18]
mov eax, dword [eax + ebx*8 - 0x14]
mov dword [edi + 0x4c], ecx
mov ecx, dword [esp + 0xa8]
mov dword [edi + 0x50], eax
mov eax, dword [ecx + ebx*8 - 0x18]
sub eax, dword [ecx + ebx*8 - 0x20]
add eax, 0x20
and eax, 0xffffffc0
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
mov dword [edi + 0x3c], eax
mov eax, dword [esp + 0x7c]
test byte [eax + 0x2e8], 0x10
jne 0x101c8ee2
mov eax, dword [esi]
mov ecx, dword [eax + ebx*8 - 0x10]
mov eax, dword [eax + ebx*8 - 0xc]
mov dword [edi + 0xb8], eax
mov dword [edi + 0xb4], ecx
mov eax, dword [esi]
mov ecx, dword [eax + ebx*8 - 8]
mov eax, dword [eax + ebx*8 - 4]
mov dword [edi + 0xbc], ecx
mov ecx, dword [esp + 0xa8]
mov dword [edi + 0xc0], eax
mov eax, dword [ecx + ebx*8 - 4]
sub eax, dword [ecx + ebx*8 - 0xc]
add eax, 0x20
and eax, 0xffffffc0
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
mov dword [edi + 0xb0], eax
push dword [esp + 0x3c]
mov ebx, dword [esp + 0x18]
push ebx
call fcn.101b55b0
push dword [esp + 0x3c]
push ebx
call fcn.101b55b0
add esp, 0x10
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
je 0x101c8f20
jmp 0x101c8f16
mov dword [esp + 0x10], 8
mov ebx, dword [esp + 0x14]
xor eax, eax
push eax
push ebx
call fcn.101b55b0
add esp, 8
push dword [esp + 0x50]
push ebx
call fcn.101b55b0
push dword [esp + 0x5c]
push ebx
call fcn.101b55b0
push dword [esp + 0x58]
push ebx
call fcn.101b55b0
push ebp
call fcn.101b31f0
add esp, 0x1c
push dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
push ebp
call fcn.101b55b0
push dword [esp + 0x28]
push ebp
call fcn.101b55b0
push dword [esp + 0x54]
push ebp
call fcn.101b55b0
mov eax, dword [esp + 0x28]
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 6
pop ebx
add esp, 0x8c
ret