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

Disassembly:
sub esp, 0x5c
mov eax, dword [esp + 0x60]
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x20], edx
mov edx, dword [ecx]
mov dword [eax], 0
mov eax, dword [esp + 0x84]
mov dword [ecx], 0
mov dword [esp + 0x24], edx
mov dword [eax], 0
lea ebx, [ebx]
cmp dword [edi], 6
jne 0x100c9c0a
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x24]
sub edx, dword [eax]
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x28]
sub esi, dword [ecx]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x140]
mov dword [esp + 0x18], ecx
mov ecx, dword [edi + 0x144]
mov ebp, eax
and ebp, ecx
xor ebx, ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edx
cmp ebp, 0xffffffff
je 0x100c9a5b
sub eax, dword [edi + 0x18]
sbb ecx, dword [edi + 0x1c]
xor ebp, ebp
cmp ebp, ecx
jb 0x100c9a3d
ja 0x100c9a31
cmp edx, eax
jb 0x100c9a3d
mov dword [esp + 0x1c], 1
mov dword [esp + 0x14], eax
or eax, ecx
jne 0x100c9a5b
mov ecx, dword [edi + 0x148]
cmp ecx, dword [edi + 0x20]
jne 0x100c9a5b
mov edx, dword [edi + 0x14c]
cmp edx, dword [edi + 0x24]
je 0x100ca1d5
mov eax, dword [edi + 0x148]
mov ecx, dword [edi + 0x14c]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x100c9a8f
sub eax, dword [edi + 0x20]
sbb ecx, dword [edi + 0x24]
xor edx, edx
cmp edx, ecx
jb 0x100c9a8f
ja 0x100c9a82
cmp esi, eax
jb 0x100c9a8f
mov ebx, 1
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x78]
push ecx
lea edx, [esp + 0x1c]
push edx
mov edx, dword [edi + 0x2c8]
neg edx
push eax
sbb edx, edx
push ebx
lea ecx, [esp + 0x24]
not edx
push ecx
and edx, ebp
push edx
lea esi, [edi + 0x68]
call fcn.100c8fa0
mov ecx, dword [esp + 0x84]
mov ebx, eax
mov eax, dword [edi + 0x88]
mov dword [ecx], eax
mov eax, dword [edi + 0x2c8]
test eax, eax
je 0x100c9ae9
mov edx, dword [edi + 0x2d0]
add edx, eax
jmp 0x100c9aeb
mov edx, ebp
mov esi, dword [esp + 0x10]
push esi
lea ecx, [edi + 0x1d8]
call fcn.100c8930
cmp dword [edi + 0x2c8], 0
jne 0x100c9b0a
add ebp, esi
mov dword [esp + 0x20], ebp
add dword [edi + 0x2d0], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
add dword [ecx], eax
add dword [esp + 0x74], eax
add dword [edi + 0x18], eax
mov eax, dword [esp + 0x70]
mov ecx, 0
adc dword [edi + 0x1c], ecx
add dword [eax], esi
add dword [edi + 0x20], esi
adc dword [edi + 0x24], ecx
cmp ebx, ecx
jne 0x100ca1ac
mov eax, dword [esp + 0x84]
cmp dword [eax], 1
jne 0x100ca1b8
mov cx, word [edi + 0x10]
mov ebp, dword [edi + 0x20]
mov ebx, dword [edi + 0x24]
call fcn.100c88e0
xor ecx, ecx
xor esi, esi
add eax, dword [edi + 0x14]
adc ecx, esi
add eax, dword [edi + 0x18]
adc ecx, dword [edi + 0x1c]
push ecx
push eax
lea ecx, [esp + 0x34]
call fcn.100c8880
mov esi, eax
push ebx
push ebp
lea ecx, [esp + esi + 0x34]
call fcn.100c8880
add esi, eax
push esi
lea ecx, [edi + 0x250]
lea edx, [esp + 0x30]
call fcn.100c8400
add dword [edi + 0x30], esi
mov ecx, dword [esp + 0x84]
mov eax, 0
adc dword [edi + 0x34], eax
add dword [edi + 0x28], 1
mov dword [edi + 4], eax
mov dword [edi + 8], eax
adc dword [edi + 0x2c], eax
mov dword [edi], 7
mov dword [ecx], eax
mov eax, dword [edi + 0x140]
mov ecx, dword [edi + 0x144]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x100c9be3
cmp eax, dword [edi + 0x18]
jne 0x100ca1d5
cmp ecx, dword [edi + 0x1c]
jne 0x100ca1d5
mov eax, dword [edi + 0x148]
mov ecx, dword [edi + 0x14c]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x100c9c0a
cmp eax, dword [edi + 0x20]
jne 0x100ca1d5
cmp ecx, dword [edi + 0x24]
jne 0x100ca1d5
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
mov ebp, dword [esp + 0x24]
sub ebp, eax
jne 0x100c9c21
cmp dword [edi], 7
jne 0x100ca1e4
mov ecx, dword [edi]
cmp ecx, 7
ja case.0x100c9c2c.6
jmp dword [ecx*4 + 0x100ca260]
mov eax, dword [edi + 4]
cmp eax, 0xc
jae 0x100c9c7f
cmp eax, 6
jae 0x100c9c52
mov ecx, dword [esp + 0x74]
mov dl, byte [ecx]
cmp dl, byte [eax + 0x100e43f8]
jne 0x100ca250
cmp dword [edi + 0x2c0], 0
jne 0x100ca212
mov ecx, dword [esp + 0x74]
mov dl, byte [ecx]
mov byte [eax + edi + 0x2f4], dl
mov eax, dword [esp + 0x78]
inc dword [edi + 4]
inc ecx
inc dword [eax]
mov dword [esp + 0x74], ecx
jmp case.0x100c9c2c.6
lea edx, [edi + 0x2f4]
lea ecx, [edi + 0x10]
call fcn.100c92a0
xor esi, esi
cmp eax, esi
jne 0x100ca255
add dword [edi + 0x48], 1
lea ecx, [edi + 0x250]
mov dword [edi + 0x30], esi
adc dword [edi + 0x4c], esi
mov dword [edi + 0x34], esi
mov dword [edi + 0x28], esi
mov dword [edi + 0x2c], esi
call fcn.100c78e0
mov dword [edi], 5
mov dword [edi + 4], esi
jmp case.0x100c9c2c.6
mov eax, dword [edi + 4]
xor ebx, ebx
cmp eax, ebx
jne 0x100c9d73
mov eax, dword [esp + 0x74]
mov cl, byte [eax]
inc eax
mov byte [edi + 0x2f4], cl
inc dword [edi + 4]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x78]
inc dword [eax]
mov al, byte [edi + 0x2f4]
test al, al
jne 0x100c9d61
cmp dword [edi + 0x2c4], ebx
jne 0x100ca1d5
mov edx, dword [edi + 0x2c]
mov eax, dword [edi + 0x28]
push edx
push eax
lea ecx, [edi + 0x2f5]
call fcn.100c8880
inc eax
xor ecx, ecx
add dword [edi + 0x30], eax
mov dword [edi + 0x3c], ecx
lea edx, [edi + 0x2d4]
adc dword [edi + 0x34], ecx
lea ecx, [edi + 0x250]
mov dword [edi + 0xc], eax
mov dword [edi + 0x38], eax
call fcn.100c84b0
lea ecx, [edi + 0x250]
call fcn.100c78e0
mov ecx, dword [edi + 0xc]
push ecx
lea edx, [edi + 0x2f4]
or ecx, 0xffffffff
call fcn.100ce880
mov dword [edi + 0x60], eax
mov dword [edi], 1
jmp case.0x100c9c2c.6
movzx edx, al
lea eax, [edx*4 + 4]
mov dword [edi + 0x14], eax
jmp case.0x100c9c2c.6
mov esi, dword [edi + 0x14]
cmp eax, esi
je 0x100c9daf
sub esi, eax
cmp esi, ebp
jbe 0x100c9d82
mov esi, ebp
mov ebx, dword [esp + 0x74]
push esi
lea ecx, [eax + edi + 0x2f4]
push ebx
push ecx
call sub.msvcrt.dll_memcpy
add dword [edi + 4], esi
mov eax, dword [esp + 0x84]
add dword [eax], esi
add esp, 0xc
add ebx, esi
mov dword [esp + 0x74], ebx
jmp case.0x100c9c2c.6
lea esi, [edi + 0x140]
lea edx, [edi + 0x2f4]
mov ecx, esi
call fcn.100c93e0
cmp eax, ebx
jne 0x100ca255
mov edx, esi
call fcn.100c9350
test eax, eax
je 0x100ca1fd
movzx edx, word [edi + 0x10]
mov ebp, 1
add dword [edi + 0x58], ebp
lea ecx, [edi + 0x1d8]
mov dword [edi], 6
adc dword [edi + 0x5c], ebx
and edx, 0xf
mov dword [edi + 0x18], ebx
mov dword [edi + 0x1c], ebx
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], ebx
call fcn.100c8900
cmp dword [edi + 0x2b8], ebx
jne 0x100ca20c
mov edx, dword [edi + 0x2cc]
mov eax, dword [edi + 0x2c8]
push edx
push eax
push esi
lea eax, [edi + 0x68]
call fcn.100c9590
cmp eax, ebx
je case.0x100c9c2c.6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x18
mov ecx, dword [edi + 0x18]
add ecx, dword [edi + 8]
test cl, 3
je 0x100c9e7c
test ebp, ebp
je 0x100ca21e
mov edx, dword [esp + 0x78]
inc eax
mov dword [edx], eax
mov eax, dword [esp + 0x74]
inc dword [edi + 8]
mov cl, byte [eax]
inc eax
mov dword [esp + 0x74], eax
test cl, cl
je case.0x100c9c2c.6
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x5c
ret 0x18
mov cx, word [edi + 0x10]
call fcn.100c88e0
mov ebx, eax
mov eax, dword [edi + 4]
mov esi, ebx
sub esi, eax
je 0x100c9ecf
test ebp, ebp
je 0x100ca237
cmp esi, ebp
jbe 0x100c9e9e
mov esi, ebp
mov ebp, dword [esp + 0x74]
push esi
lea edx, [eax + edi + 0x2f4]
push ebp
push edx
call sub.msvcrt.dll_memcpy
add dword [edi + 4], esi
mov eax, dword [esp + 0x84]
add dword [eax], esi
add ebp, esi
add esp, 0xc
mov dword [esp + 0x74], ebp
cmp ebx, dword [edi + 4]
jne case.0x100c9c2c.6
lea ecx, [edi + 0x1d8]
lea edx, [esp + 0x2c]
mov dword [edi], 5
mov dword [edi + 4], 0
call fcn.100c8990
test eax, eax
je 0x100c9f48
mov eax, ebx
lea ecx, [edi + 0x2f4]
lea esi, [esp + 0x2c]
cmp ebx, 4
jb 0x100c9f18
mov edx, dword [esi]
cmp edx, dword [ecx]
jne 0x100c9e6d
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x100c9f00
test eax, eax
je 0x100c9f48
mov dl, byte [ecx]
cmp dl, byte [esi]
jne 0x100c9e6d
cmp eax, 1
jbe 0x100c9f48
mov dl, byte [ecx + 1]
cmp dl, byte [esi + 1]
jne 0x100c9e6d
cmp eax, 2
jbe 0x100c9f48
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x100c9e6d
cmp dword [edi + 0x2c4], 0
je case.0x100c9c2c.6
mov eax, dword [esp + 0x84]
pop edi
pop esi
pop ebp
mov dword [eax], 1
xor eax, eax
pop ebx
add esp, 0x5c
ret 0x18
mov ecx, dword [edi + 4]
cmp ecx, dword [edi + 0xc]
jae 0x100c9f9d
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x74]
inc eax
mov dword [edx], eax
mov eax, dword [edi + 4]
mov cl, byte [esi]
mov dl, byte [eax + edi + 0x2f4]
inc eax
inc esi
mov dword [edi + 4], eax
mov dword [esp + 0x74], esi
cmp cl, dl
jmp 0x100c9e67
mov esi, dword [edi + 0x3c]
mov eax, dword [edi + 0x34]
mov edx, dword [edi + 0x38]
mov ecx, dword [edi + 0x30]
cmp esi, eax
ja 0x100c9ffd
jb 0x100c9fb3
cmp edx, ecx
jae 0x100c9ffd
sub ecx, edx
sbb eax, esi
xor edx, edx
cmp edx, eax
jb 0x100c9fc5
ja 0x100c9fc3
cmp ebp, ecx
jbe 0x100c9fc5
mov ebp, ecx
mov esi, dword [esp + 0x74]
mov ecx, dword [edi + 0x60]
push ebp
mov edx, esi
call fcn.100ce880
push ebp
lea ecx, [edi + 0x250]
mov edx, esi
mov dword [edi + 0x60], eax
call fcn.100c8400
mov eax, dword [esp + 0x78]
add dword [eax], ebp
add esi, ebp
add dword [edi + 0x38], ebp
mov dword [esp + 0x74], esi
adc dword [edi + 0x3c], 0
jmp case.0x100c9c2c.6
and edx, 3
xor esi, esi
or edx, esi
je 0x100ca049
mov eax, dword [esp + 0x74]
mov cl, byte [eax]
mov edx, 1
add eax, edx
mov dword [esp + 0x74], eax
mov eax, dword [edi + 0x60]
movzx ebx, cl
xor ebx, eax
shr eax, 8
and ebx, 0xff
xor eax, dword [ebx*4 + 0x100fd6a0]
mov dword [edi + 0x60], eax
mov eax, dword [esp + 0x78]
add dword [eax], edx
add dword [edi + 0x38], edx
adc dword [edi + 0x3c], esi
add dword [edi + 0x30], edx
adc dword [edi + 0x34], esi
jmp 0x100c9e65
add ecx, 4
adc eax, esi
mov dword [edi + 0x30], ecx
lea ecx, [edi + 0x250]
lea edx, [esp + 0x2c]
mov dword [edi], 2
mov dword [edi + 0x34], eax
mov dword [edi + 4], esi
call fcn.100c84b0
lea eax, [edi + 0x2d4]
lea ecx, [esp + 0x2c]
mov edx, 0x20
sub ecx, eax
lea ecx, [ecx]
mov esi, dword [eax + ecx]
cmp esi, dword [eax]
jne 0x100c9e6d
sub edx, 4
add eax, 4
cmp edx, 4
jae 0x100ca080
jmp case.0x100c9c2c.6
cmp dword [edi + 4], 4
jae 0x100ca0c5
mov ecx, dword [esp + 0x78]
inc eax
mov dword [ecx], eax
mov eax, dword [esp + 0x74]
mov cl, byte [eax]
mov edx, dword [edi + 4]
mov byte [edx + edi + 0x2f4], cl
inc dword [edi + 4]
inc eax
mov dword [esp + 0x74], eax
jmp case.0x100c9c2c.6
mov edx, dword [edi + 0x60]
not edx
cmp edx, dword [edi + 0x2f4]
mov dword [edi], 3
mov dword [edi + 4], 0
jmp 0x100c9e67
mov eax, dword [edi + 4]
mov esi, 0xc
sub esi, eax
cmp esi, ebp
jbe 0x100ca0f2
mov esi, ebp
mov ebx, dword [esp + 0x74]
push esi
lea eax, [eax + edi + 0x2f4]
push ebx
push eax
call sub.msvcrt.dll_memcpy
add dword [edi + 4], esi
mov eax, dword [esp + 0x84]
add dword [eax], esi
add ebx, esi
add esp, 0xc
cmp dword [edi + 4], 0xc
mov dword [esp + 0x74], ebx
jne case.0x100c9c2c.6
add dword [edi + 0x50], 1
mov ecx, dword [edi + 0x34]
mov edx, dword [edi + 0x30]
mov eax, 0
adc dword [edi + 0x54], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
movzx eax, word [edi + 0x10]
push ecx
push edx
lea esi, [edi + 0x2f4]
push eax
mov dword [edi], 4
call fcn.100c92f0
test eax, eax
jne case.0x100c9c2c.6
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x5c
ret 0x18
mov ecx, dword [esp + 0x74]
cmp byte [ecx], 0
je 0x100ca190
test byte [edi + 0x40], 3
jne 0x100ca250
mov dword [edi + 4], 0
mov dword [edi], 0
jmp case.0x100c9c2c.6
mov edx, dword [esp + 0x78]
inc eax
mov dword [edx], eax
mov eax, 1
add dword [esp + 0x74], eax
add dword [edi + 0x40], eax
adc dword [edi + 0x44], 0
jmp case.0x100c9c2c.6
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x5c
ret 0x18
mov edx, dword [edi + 0x140]
cmp edx, dword [edi + 0x18]
jne 0x100ca212
mov edx, dword [edi + 0x144]
cmp edx, dword [edi + 0x1c]
jne 0x100ca212
cmp dword [eax], 3
jne 0x100ca212
mov dword [eax], ecx
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x5c
ret 0x18
mov eax, dword [esp + 0x84]
pop edi
pop esi
pop ebp
mov dword [eax], 3
xor eax, eax
pop ebx
add esp, 0x5c
ret 0x18
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x5c
ret 0x18
mov dword [edi + 0x2bc], ebp
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x5c
ret 0x18
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebp
mov dword [ecx], 3
xor eax, eax
pop ebx
add esp, 0x5c
ret 0x18
mov edx, dword [esp + 0x84]
pop edi
pop esi
pop ebp
mov dword [edx], 3
xor eax, eax
pop ebx
add esp, 0x5c
ret 0x18
mov eax, 0x11
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x18