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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x30
mov eax, dword [0x101d2014]
xor eax, ebp
mov dword [esp + 0x28], eax
mov edi, dword [ecx + 0x28]
test edi, edi
jne 0x1000893a
mov esi, ecx
mov ecx, dword [0x101d2114]
mov ebx, edx
test ecx, ecx
jne 0x10008bab
cmp byte [esi + 0x10], 3
jb 0x10008938
cmp byte [esi + 0xc], 0
mov dword [esp + 4], esi
jne 0x1000894f
cmp dword [esi + 0xd8], 0
je 0x1000896e
mov dword [esp + 0x18], 0
mov ecx, dword [esi + 0xd4]
call fcn.10025c30
test eax, eax
je 0x10008bcd
mov ecx, esi
mov edx, eax
push 1
push dword [esi + 0x18]
call fcn.1001f0a0
add esp, 8
mov ecx, dword [esp + 0x18]
mov esi, eax
test ecx, ecx
jne 0x10008c06
test esi, esi
mov dword [esp], esi
jne 0x10008920
mov eax, dword [esp + 4]
mov edi, dword [eax + 0xd4]
mov eax, dword [edi]
test eax, eax
je 0x10008920
mov ecx, dword [eax + 0xc]
cmp dword [ecx + 8], eax
jne 0x100088bc
mov edx, dword [eax + 0x24]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0x20]
lea esi, [ecx + 4]
test edx, edx
lea edx, [edx + 0x24]
cmove edx, esi
mov esi, dword [eax + 0x24]
mov dword [edx], esi
mov esi, dword [eax + 0x24]
mov edx, dword [eax + 0x20]
test esi, esi
jne 0x10008ba3
test edx, edx
mov dword [ecx], edx
jne 0x100088e7
mov byte [ecx + 0x21], 2
mov ecx, dword [eax + 0x1c]
and ecx, 0xfffffff0
or ecx, 1
mov word [eax + 0x1c], cx
cmp word [eax + 0x1e], 0
jne 0x100088a8
mov edx, dword [eax + 0xc]
cmp byte [edx + 0x20], 0
je 0x100088a8
mov ecx, dword [0x101d20a4]
mov esi, dword [eax]
mov ebx, dword [edx + 0x2c]
call dword [section..00cfg]
push 0
push esi
push ebx
call ecx
add esp, 0xc
jmp 0x100088a8
mov edi, dword [esp]
mov esi, dword [esp + 4]
test edi, edi
jne 0x1000893a
cmp dword [esi + 0xd8], 0
jne 0x10008938
mov byte [esi + 0x10], 5
xor edi, edi
mov ecx, dword [esp + 0x28]
xor ecx, ebp
call fcn.10192ef0
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x3c]
cmp dword [eax], 0
jne 0x10008c1f
mov eax, dword [esi + 0x58]
test eax, eax
je 0x1000892b
mov dword [eax + 0x10], 1
mov eax, dword [eax + 0x2c]
jmp 0x1000895e
cmp byte [esi + 0x12], 0
mov dword [esp + 0x10], ebx
jne 0x10008a46
cmp dword [esi + 0x18], 0
je 0x10008a46
mov ecx, dword [esi + 0xcc]
call dword [section..00cfg]
lea eax, [esp + 0x18]
push 0
push eax
push 1
push esi
call ecx
add esp, 0x10
test eax, eax
jne 0x10008c95
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x14]
test byte [edi + 0x1c], 4
je 0x10008b77
mov ecx, dword [eax + 0x18]
cmp ecx, dword [edi + 0x18]
jb 0x10008b77
cmp dword [eax + 0x60], 0
je 0x100089e1
mov ecx, edi
call fcn.1001ee10
test eax, eax
mov dword [esp], eax
jne 0x10008a24
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x14]
push dword [eax + 0x68]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov esi, dword [edi + 4]
inc eax
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov dword [esi + 0x18], eax
mov ecx, dword [edi + 4]
mov dword [ecx + 0x5c], eax
mov esi, dword [edi + 4]
push 0x2e4b91
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov dword [esi + 0x60], eax
mov esi, dword [esp + 4]
mov dword [esp], 0
mov byte [esi + 0x12], 1
mov ecx, dword [esp + 0x18]
mov edi, dword [esp]
test ecx, ecx
je 0x10008a3e
test byte [ecx + 0x1c], 0x20
jne 0x10008c9d
call fcn.10025e90
test edi, edi
jne 0x1000893a
test ebx, ebx
jne 0x10008d03
mov ebx, dword [esp + 0x10]
mov ecx, esi
xor edx, edx
call fcn.1001fe90
test eax, eax
jne 0x10008c18
mov ecx, dword [esi + 0xd4]
call fcn.10025c30
mov ecx, esi
mov edx, eax
call fcn.10020190
test eax, eax
jne 0x10008c18
mov edi, dword [esi + 0xd4]
mov eax, dword [edi]
test eax, eax
je 0x10008b01
mov ecx, dword [eax + 0xc]
cmp dword [ecx + 8], eax
jne 0x10008a99
mov edx, dword [eax + 0x24]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0x20]
lea esi, [ecx + 4]
test edx, edx
lea edx, [edx + 0x24]
cmove edx, esi
mov esi, dword [eax + 0x24]
mov dword [edx], esi
mov esi, dword [eax + 0x24]
mov edx, dword [eax + 0x20]
test esi, esi
jne 0x10008c10
test edx, edx
mov dword [ecx], edx
jne 0x10008ac4
mov byte [ecx + 0x21], 2
mov ecx, dword [eax + 0x1c]
and ecx, 0xfffffff0
or ecx, 1
mov word [eax + 0x1c], cx
cmp word [eax + 0x1e], 0
jne 0x10008a85
mov edx, dword [eax + 0xc]
cmp byte [edx + 0x20], 0
je 0x10008a85
mov ecx, dword [0x101d20a4]
mov esi, dword [eax]
mov ebx, dword [edx + 0x2c]
call dword [section..00cfg]
push 0
push esi
push ebx
mov ebx, dword [esp + 0x1c]
call ecx
add esp, 0xc
jmp 0x10008a85
mov esi, dword [esp + 4]
mov edi, dword [esi + 0x18]
cmp edi, dword [esi + 0x20]
ja 0x10008d43
cmp dword [ebp + 8], 0
jne 0x1000892b
mov edi, dword [esi + 0x3c]
mov eax, dword [edi]
test eax, eax
je 0x10008b45
mov ecx, dword [eax + 0x28]
call dword [section..00cfg]
push ebx
push 0x15
push edi
call ecx
add esp, 0xc
cmp eax, 0xc
je 0x10008b45
mov edi, eax
test eax, eax
jne 0x1000893a
cmp byte [esi + 7], 0
jne 0x1000892b
movzx edi, byte [esi + 0xa]
test edi, edi
je 0x1000892b
mov esi, dword [esi + 0x3c]
mov eax, dword [esi]
mov ecx, dword [eax + 0x14]
call dword [section..00cfg]
push edi
push esi
call ecx
add esp, 8
mov edi, eax
jmp 0x10008923
mov ecx, dword [eax + 0x28]
test ecx, ecx
mov dword [esp], ecx
jne 0x10008a24
mov ecx, dword [eax + 0x94]
cmp ecx, dword [eax + 0x98]
ja 0x10008d71
mov ecx, edi
call fcn.10029840
jmp 0x100089d3
mov dword [esi + 0x20], edx
jmp 0x100088e7
call dword [section..00cfg]
push 0x190
call ecx
add esp, 4
mov edi, 0xa
test eax, eax
je 0x10008834
jmp 0x1000893a
mov ecx, dword [esi + 0xcc]
call dword [section..00cfg]
xor esi, esi
lea edi, [esp + 0x18]
push esi
push edi
push 1
push dword [esp + 0x10]
call ecx
add esp, 0x10
mov ecx, eax
mov eax, dword [edi]
mov dword [eax + 0x10], esi
mov esi, dword [esp + 4]
test eax, eax
jne 0x10008874
mov esi, ecx
jmp 0x10008893
call fcn.10025e10
jmp 0x10008893
mov dword [esi + 0x20], edx
jmp 0x10008ac4
mov edi, eax
jmp 0x1000893a
mov edi, dword [esi + 0xd4]
mov ecx, dword [edi + 0x10]
test ecx, ecx
jns 0x10008c54
mov eax, ecx
xor edx, edx
sar eax, 0x1f
shld eax, ecx, 0xa
shl ecx, 0xa
neg ecx
sbb edx, eax
mov eax, dword [edi + 0x1c]
add eax, dword [edi + 0x18]
mov esi, eax
sar esi, 0x1f
push esi
push eax
push edx
push ecx
call fcn.10193120
mov ecx, eax
mov edx, dword [edi]
xor eax, eax
test edx, edx
je 0x10008c62
mov edx, dword [edx + 0x20]
inc eax
jmp 0x10008c58
mov esi, dword [esp + 4]
test ecx, ecx
je 0x1000895b
mov esi, ecx
mov edx, 0x64
sar esi, 0x1f
mul edx
push esi
mov esi, dword [esp + 8]
push ecx
push edx
push eax
call fcn.10193120
cmp eax, 0x18
jle 0x1000895b
jmp 0x1000884c
mov dword [esp], eax
jmp 0x10008a24
mov esi, dword [ecx + 0x14]
dec dword [esi + 0x78]
mov eax, dword [esi + 0x88]
mov dword [ecx + 0x10], eax
mov dword [esi + 0x88], ecx
mov edx, dword [esi + 0x98]
mov eax, dword [ecx + 0x18]
mov esi, dword [esi + 0x3c]
mov ebx, edx
dec eax
sar ebx, 0x1f
imul ebx, eax
mul edx
mov edi, edx
mov edx, dword [ecx + 4]
mov ecx, dword [esi]
mov dword [esp + 8], eax
add edi, ebx
mov ebx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x48]
mov dword [esp + 0xc], edx
call dword [section..00cfg]
push dword [esp + 0xc]
push edi
mov edi, dword [esp + 8]
push dword [esp + 0x10]
push esi
mov esi, dword [esp + 0x14]
call ecx
add esp, 0x10
jmp 0x10008a3e
cmp byte [esi + 5], 4
je 0x10008a4e
mov eax, dword [esi + 0x40]
cmp dword [eax], 0
mov dword [esp + 0xc], eax
je 0x10008a4e
mov eax, dword [esp + 0x10]
mov byte [esi + 0x13], 1
mov al, byte [eax]
test al, al
je 0x10008d7d
xor edi, edi
xor ebx, ebx
movsx eax, al
add edi, eax
mov eax, dword [esp + 0x10]
mov al, byte [eax + ebx + 1]
inc ebx
test al, al
jne 0x10008d2f
jmp 0x10008d81
mov eax, dword [0x101d2678]
xor ecx, ecx
cdq
idiv dword [esi + 0x98]
inc eax
cmp edi, eax
sete cl
sub edi, ecx
mov ecx, esi
mov edx, edi
call fcn.10026110
mov edi, eax
test eax, eax
jne 0x1000893a
jmp 0x10008b11
mov ecx, edi
call fcn.100295e0
jmp 0x100089d3
xor ebx, ebx
xor edi, edi
mov eax, dword [esp + 4]
cmp byte [eax + 8], 0
mov ecx, dword [eax + 0x48]
mov eax, dword [eax + 0x4c]
mov dword [esp + 8], ecx
mov dword [esp], eax
je 0x10008ded
mov eax, dword [esp + 8]
or eax, dword [esp]
je 0x10008feb
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
mov ecx, dword [esp]
mov esi, dword [eax + 0x94]
add edx, 0xffffffff
adc ecx, 0xffffffff
push 0
push esi
push ecx
push edx
call fcn.10193120
mov ecx, edx
add eax, 1
adc ecx, 0
mul esi
imul ecx, esi
mov dword [esp + 8], eax
add ecx, edx
mov dword [esp], ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp]
mov dword [eax + 0x48], ecx
mov dword [eax + 0x4c], edx
mov eax, dword [0x101d2678]
mov ecx, dword [esp + 4]
cdq
idiv dword [ecx + 0x98]
inc eax
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov esi, dword [esp + 0xc]
lea ecx, [esp + 0x24]
mov dword [ecx], eax
mov eax, dword [esi]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
push dword [esp]
push dword [esp + 0xc]
push 4
lea eax, [esp + 0x30]
push eax
push esi
call ecx
add esp, 0x14
mov ecx, eax
test eax, eax
je 0x10008e3d
mov edi, ecx
jmp 0x1000893a
mov eax, dword [esp + 4]
add dword [esp + 8], 4
mov esi, dword [esp]
mov eax, dword [eax + 0x40]
adc esi, 0
mov dword [esp + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
mov dword [esp], esi
push esi
mov eax, dword [esp + 0xc]
mov esi, eax
push eax
push ebx
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call ecx
add esp, 0x14
mov ecx, eax
test eax, eax
jne 0x10008e36
mov eax, dword [esp + 4]
add esi, ebx
mov dword [esp + 8], esi
mov esi, dword [esp]
mov eax, dword [eax + 0x40]
adc esi, 0
mov dword [esp + 0xc], eax
push ebx
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
mov dword [esp], esi
push esi
push dword [esp + 0xc]
push 4
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x1c]
call ecx
add esp, 0x14
mov ecx, eax
test eax, eax
jne 0x10008e36
mov eax, dword [esp + 8]
mov esi, dword [esp]
add eax, 4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
adc esi, 0
mov eax, dword [eax + 0x40]
mov dword [esp + 0x14], eax
push edi
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov edi, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [edi]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
push esi
push dword [esp + 0x10]
push 4
lea eax, [esp + 0x30]
push eax
push edi
call ecx
add esp, 0x14
mov ecx, eax
test eax, eax
jne 0x10008e36
mov eax, dword [esp + 4]
mov edi, dword [esp]
mov esi, dword [esp + 8]
mov eax, dword [eax + 0x40]
add esi, 8
adc edi, 0
mov dword [esp], eax
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
push edi
push esi
push 8
push 0x10194ca4
push dword [esp + 0x10]
call ecx
add esp, 0x14
mov ecx, eax
test eax, eax
jne 0x10008e36
mov ecx, dword [esp + 4]
add ebx, dword [ecx + 0x48]
mov eax, dword [ecx + 0x4c]
mov esi, dword [ecx + 0x40]
adc eax, 0
add ebx, 0x14
adc eax, 0
mov dword [ecx + 0x48], ebx
mov dword [ecx + 0x4c], eax
mov eax, dword [esi]
mov ecx, dword [eax + 0x18]
call dword [section..00cfg]
lea eax, [esp + 0x18]
push eax
push esi
call ecx
add esp, 8
mov ecx, eax
test eax, eax
jne 0x10008e36
mov esi, dword [esp + 4]
mov edi, dword [esi + 0x48]
mov ebx, dword [esi + 0x4c]
cmp edi, dword [esp + 0x18]
mov eax, ebx
sbb eax, dword [esp + 0x1c]
jge 0x10008a4e
mov eax, dword [esp + 4]
mov esi, dword [eax + 0x40]
mov eax, dword [esi]
mov ecx, dword [eax + 0x10]
call dword [section..00cfg]
push ebx
push edi
push esi
mov esi, dword [esp + 0x10]
call ecx
add esp, 0xc
mov ebx, dword [esp + 0x10]
mov edi, eax
test eax, eax
jne 0x1000893a
jmp 0x10008a52
mov dword [esp + 8], 0
mov dword [esp], 0
jmp 0x10008ddc