Function at 0x100c6670
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 0x100c70b8
test ebx, ebx
je 0x100c70b8
xor ecx, ecx
test edi, edi
je 0x100c6744
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 0x100c6720
mov ebp, dword [esp + 0x30]
cmp edx, dword [ebx + 0x44]
jae 0x100c70ab
mov ecx, dword [ebx + 0x48]
lea esi, [edx*4]
mov eax, dword [ecx + esi]
cmp eax, dword [ecx + esi + 4]
je 0x100c70ab
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 8
push dword [esp + 0x28]
call fcn.100b37d0
add esp, 0x18
mov dword [esp + 0x40], eax
cmp dword [esp + 0x10], 0
jne 0x100c7077
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 8
push dword [esp + 0x28]
call fcn.100b37d0
add esp, 0x18
mov dword [esp + 0x20], eax
cmp dword [esp + 0x10], 0
jne 0x100c7077
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 1
push dword [esp + 0x28]
call fcn.100b37d0
add esp, 0x18
mov dword [esp + 0x44], eax
cmp dword [esp + 0x10], 0
jne 0x100c7077
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.100b1c60
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100c7077
push esi
push ebp
call fcn.100b11c0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100c7077
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.100b37d0
add esp, 0x18
mov dword [esp + 0x50], eax
cmp dword [esp + 0x10], 0
jne 0x100c7040
lea eax, [esp + 0x10]
push eax
push 0
push dword [ebx]
push 0
push 4
push dword [esp + 0x28]
call fcn.100b37d0
add esp, 0x18
mov dword [esp + 0x54], eax
cmp dword [esp + 0x10], 0
jne 0x100c7040
lea eax, [esp + 0x10]
push eax
push 0
push dword [ebx]
push 0
push 4
push dword [esp + 0x28]
call fcn.100b37d0
add esp, 0x18
mov dword [esp + 0x48], eax
cmp dword [esp + 0x10], 0
jne 0x100c7040
push ebp
call fcn.100b13f0
movzx eax, ax
push ebp
mov dword [esp + 0x68], eax
call fcn.100b13f0
movzx edx, ax
add esp, 8
cmp edx, esi
ja 0x100c7038
mov ecx, dword [esp + 0x60]
mov eax, ecx
and eax, 0xfff
mov dword [esp + 0x60], eax
shl eax, 2
cmp eax, esi
ja 0x100c7038
add edx, dword [esp + 0x5c]
mov dword [esp + 0x24], edx
test ecx, 0x8000
je 0x100c6931
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 0x100c68f9
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.100c8300
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 0x100c692e
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.100b37d0
add esp, 0x18
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x10], 0
jne 0x100c7012
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 4
push esi
call fcn.100b37d0
add esp, 0x18
mov edx, eax
cmp dword [esp + 0x10], 0
mov dword [esp + 0x34], edx
jne 0x100c7012
xor ecx, ecx
test edi, edi
je 0x100c69bd
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 0x100c6993
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0xa4]
jmp 0x100c69c7
mov eax, dword [esp + 0xa4]
lea esi, [eax + 4]
cmp dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
jbe 0x100c6e7c
nop word [eax + eax]
push ebp
call fcn.100b13f0
push ebp
mov word [esp + 0x72], ax
call fcn.100b13f0
movzx esi, ax
add esp, 8
mov dword [esp + 0x58], eax
mov dword [esp + 0x1c], esi
test esi, 0x8000
je 0x100c6afe
xor esi, esi
cmp dword [ebx], esi
jbe 0x100c6a2e
mov edi, dword [esp + 0x50]
push ebp
call fcn.100b13f0
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
cmp esi, dword [ebx]
jb 0x100c6a15
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
test esi, 0x4000
je 0x100c6a8d
mov eax, dword [ebx]
xor esi, esi
test eax, eax
je 0x100c6a61
mov edi, dword [esp + 0x54]
push ebp
call fcn.100b13f0
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
mov eax, dword [ebx]
cmp esi, eax
jb 0x100c6a46
mov edi, dword [esp + 0x18]
xor esi, esi
test eax, eax
je 0x100c6a89
mov edi, dword [esp + 0x48]
nop dword [eax + eax]
push ebp
call fcn.100b13f0
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
cmp esi, dword [ebx]
jb 0x100c6a70
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.100c73c0
add esp, 0x14
mov dword [esp + 0x1c], eax
test eax, eax
je 0x100c6e52
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 0x100c6ad4
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [ebp + 0x20], edx
test esi, 0x2000
je 0x100c6b34
lea eax, [esp + 0x38]
push eax
push dword [ebx + 0x4c]
push ebp
call fcn.100c8300
mov dword [esp + 0x78], eax
add esp, 0xc
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
jmp 0x100c6b47
mov edx, esi
and edx, 0xfff
cmp edx, dword [ebx + 0x3c]
jae 0x100c6eb2
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 sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
jmp 0x100c6a32
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.100c81b0
push esi
push dword [ebx + 0x4c]
mov dword [esp + 0x84], eax
push ebp
call fcn.100c81b0
mov edx, dword [esp + 0x40]
add esp, 0x18
mov ecx, eax
mov dword [esp + 0x58], ecx
test edx, edx
je 0x100c6e01
test ecx, ecx
je 0x100c6e01
mov eax, dword [esp + 0x70]
test eax, eax
je 0x100c6e01
cmp edx, 0xffffffff
jne 0x100c6c69
test edi, edi
je 0x100c6e01
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 0x100c6bc6
jmp 0x100c6df5
xor esi, esi
test edi, edi
je 0x100c6cad
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 0x100c6c81
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 0x100c6d83
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 0x100c6d6f
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 0x100c6cd0
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.100ca5d0
add esp, 0x10
xor ebx, ebx
test edi, edi
je 0x100c6dfd
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 0x100c6dc3
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 0x100c6e20
push eax
push esi
call fcn.100b3660
add esp, 8
mov dword [esp + 0x6c], 0
push dword [esp + 0x70]
push esi
call fcn.100b3660
push dword [esp + 0x60]
push esi
call fcn.100b3660
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 0x100c6e4f
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 0x100c69e0
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 0x100c6ebf
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 0x100c6ec1
mov dword [esp + 0x10], 8
jmp 0x100c7012
mov eax, esi
test byte [ebx + 0x2e8], 0x10
je 0x100c6eec
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 0x100c6f60
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 0x100c6f03
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 0x100c6fb9
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 0x100c7012
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.100b3660
push dword [esp + 0x3c]
push ebx
call fcn.100b3660
add esp, 0x10
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
je 0x100c7050
jmp 0x100c7046
mov dword [esp + 0x10], 8
mov ebx, dword [esp + 0x14]
xor eax, eax
push eax
push ebx
call fcn.100b3660
add esp, 8
push dword [esp + 0x50]
push ebx
call fcn.100b3660
push dword [esp + 0x5c]
push ebx
call fcn.100b3660
push dword [esp + 0x58]
push ebx
call fcn.100b3660
push ebp
call fcn.100b1290
add esp, 0x1c
push dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
push ebp
call fcn.100b3660
push dword [esp + 0x28]
push ebp
call fcn.100b3660
push dword [esp + 0x54]
push ebp
call fcn.100b3660
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