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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1005b18d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x130
cmp byte [ebp + 0x1c], 0
push ebx
push esi
push edi
mov byte [esp + 0x44], cl
je 0x10008e2a
test cl, cl
je 0x10008d4c
mov esi, dword [ebp + 0x18]
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x10008d3e
lea eax, [esp + 0x78]
xor ebx, ebx
push eax
push 0x1000
lea ecx, [esp + 0x50]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
call fcn.1000b06c
mov dword [esp + 0x144], ebx
mov edi, 0x96c3
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
push dword [esp + 0x48]
sar eax, 1
push eax
push edi
push 0x936a
call fcn.1002404b
pop ecx
pop ecx
call eax
push dword [esp + 0x48]
lea ecx, [esp + 0x80]
call fcn.10003977
push 0xd9b7
mov byte [esp + 0x148], 1
call fcn.1003aca7
movzx eax, ax
lea edx, [esp + 0x80]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x58]
mov dword [esp], 0x2af2
push eax
push ecx
push 1
push ecx
call fcn.100086c3
add esp, 0x14
lea eax, [esp + 0x7c]
push 0xdea
push eax
push 0x4cb5
push ecx
xor cl, cl
call fcn.100083d4
add esp, 0x10
lea eax, [esp + 0x7c]
cmp dword [esp + 0x90], 8
cmovae eax, dword [esp + 0x7c]
push ebx
push eax
push edi
push 0xdd10
call fcn.1002404b
pop ecx
pop ecx
call eax
push 1
push 0x4074
lea eax, [esp + 0x84]
mov dl, 1
push eax
lea eax, [esp + 0x60]
mov cl, dl
push 0x1e77
push eax
call fcn.10007bfb
add esp, 0x14
mov dword [esp + 0x58], ebx
lea edx, [esp + 0x58]
mov cl, 1
push ebx
push 0x2d34
push esi
push 1
push 0x3927
push 0x7bd2
call fcn.10008769
add esp, 0x18
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], 0x1f003
mov dword [esp + 0x28], 0x56001d02
mov dword [esp + 0x2c], 0xfa87c903
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xa8]
call fcn.1000394f
push 0x10
pop edx
lea ecx, [esp + 0x108]
mov byte [esp + 0x144], 2
call fcn.10028313
push ecx
push ecx
lea eax, [esp + 0x110]
mov byte [esp + 0x14c], 3
push eax
lea ecx, [esp + 0xb0]
call fcn.10005f8a
push 0x65
pop eax
push 2
mov ecx, ebx
mov word [esp + 0x66], ax
pop esi
mov dword [esp + 0x40], ecx
cmp esi, 8
jne 0x10008955
push 4
pop ecx
push 0xa
mov dword [esp + 0x44], ecx
pop esi
jmp 0x100089a2
movzx edx, byte [esp + esi + 0x25]
mov eax, esi
sub eax, ecx
movzx eax, byte [esp + eax + 0x22]
movzx ecx, word [esp + eax*2 + 0x5c]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [esp + esi + 0x24]
add ecx, edx
mov edx, 0x7825
mov word [esp + eax*2 + 0x5c], cx
lea eax, [esp + 0x40]
push eax
push 1
push 0x5154
push 0x2cf6
push 1
mov cl, 1
call fcn.10007cd4
mov ecx, dword [esp + 0x54]
add esp, 0x14
add esi, 2
cmp esi, 0xc
jb 0x10008944
xor eax, eax
mov dword [esp + 0x104], 7
mov word [esp + 0x64], ax
lea ecx, [esp + 0xf0]
mov word [esp + 0xf0], ax
lea eax, [esp + 0x5c]
push eax
mov dword [esp + 0x104], ebx
call fcn.10003d65
push ecx
push ecx
lea eax, [esp + 0xf8]
mov byte [esp + 0x14c], 4
push eax
lea ecx, [esp + 0xb0]
call fcn.10005f8a
push ebx
push 1
lea ecx, [esp + 0xf8]
mov byte [esp + 0x14c], 3
call fcn.10004184
xor eax, eax
lea edi, [esp + 0x5c]
cmp dword [esp + 0xb8], 8
stosd dword es:[edi], eax
push ebx
push 0x80
push 2
stosd dword es:[edi], eax
push ebx
push ebx
push 0x40000000
stosw word es:[edi], ax
lea eax, [esp + 0xbc]
cmovae eax, dword [esp + 0xbc]
mov edi, 0x96c3
push eax
push edi
push 0xb4e4
call fcn.1002404b
pop ecx
pop ecx
call eax
mov esi, eax
cmp esi, 0xffffffff
je 0x10008a9e
push ebx
lea eax, [esp + 0xf0]
push eax
push dword [esp + 0x60]
mov eax, dword [ebp + 0x18]
push dword [eax]
push esi
push edi
push 0xd65e
call fcn.1002404b
pop ecx
pop ecx
call eax
push esi
test eax, eax
push edi
push 0x7549
setne bl
call fcn.1002404b
pop ecx
pop ecx
call eax
test bl, bl
jne 0x10008b45
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x110]
call fcn.10004184
push ebx
push 1
lea ecx, [esp + 0xac]
mov byte [esp + 0x14c], 1
call fcn.10004184
mov edi, dword [esp + 0x1c]
inc edi
mov dword [esp + 0x1c], edi
cmp edi, 0x12c
jb 0x100088ed
mov dword [esp + 0x10], 0x4c1e
cmp dword [esp + 0x10], 0x4ce2
jle 0x10008b37
mov esi, ebx
mov edi, ebx
mov eax, esi
lea ecx, [esp + 0x120]
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
call fcn.10001aa4
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10008b0f
mov eax, dword [eax]
push eax
call fcn.10043cef
pop ecx
push ebx
push 1
lea ecx, [esp + 0x128]
call fcn.10003c79
inc edi
cmp edi, 0x6dd7
jl 0x10008aef
inc esi
cmp esi, 0x19f0
jl 0x10008aed
mov eax, dword [ebp + 8]
mov dword [eax], 2
jmp 0x10008d21
push 0x22
pop eax
xor ebx, ebx
mov dword [esp + 0x18], 0x5801d700
push 2
mov ecx, ebx
mov word [esp + 0x24], ax
pop esi
mov dword [esp + 0x1c], ecx
cmp esi, 2
jne 0x10008b6d
push esi
pop ecx
mov dword [esp + 0x1c], ecx
jmp 0x10008ba6
movzx edx, byte [esp + esi + 0x19]
mov eax, esi
sub eax, ecx
push 1
movzx eax, byte [esp + eax + 0x1a]
movzx eax, word [esp + eax*2 + 0x24]
mov ecx, eax
and eax, edx
or ecx, edx
sub ecx, eax
movzx eax, byte [esp + esi + 0x1c]
push ecx
mov word [esp + eax*2 + 0x28], cx
lea eax, [esp + 0x24]
push eax
call fcn.100083b4
mov ecx, dword [esp + 0x28]
add esp, 0xc
add esi, 2
cmp esi, 4
jb 0x10008b60
xor eax, eax
mov dword [esp + 0xcc], ebx
push 7
mov word [esp + 0x26], ax
lea ecx, [esp + 0xc0]
pop edi
mov word [esp + 0xbc], ax
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0xd4], edi
call fcn.10003d65
lea eax, [esp + 0xa4]
mov byte [esp + 0x144], 5
push eax
push 0x6f77
lea eax, [esp + 0xc4]
mov dword [esp + 0x28], ebx
push eax
push ecx
mov cl, 1
call fcn.100083d4
add esp, 0x10
mov dword [esp + 0x30], 0xf028901
mov dword [esp + 0x34], 0x579cfd04
mov ecx, ebx
mov dword [esp + 0x38], 0x7c035b
mov byte [esp + 0x3c], 0x71
push 0x20
pop eax
push 2
mov word [esp + 0x6e], ax
pop esi
cmp esi, 4
jne 0x10008c41
push 5
pop ecx
mov esi, edi
jmp 0x10008c6a
movzx edx, byte [esp + esi + 0x31]
mov eax, esi
sub eax, ecx
movzx eax, byte [esp + eax + 0x2e]
movzx ecx, word [esp + eax*2 + 0x68]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [esp + esi + 0x30]
add ecx, edx
mov word [esp + eax*2 + 0x68], cx
mov ecx, ebx
add esi, 2
cmp esi, 0xd
jb 0x10008c35
xor eax, eax
mov dword [esp + 0xe8], edi
mov word [esp + 0x70], ax
lea ecx, [esp + 0xd4]
mov word [esp + 0xd4], ax
lea eax, [esp + 0x68]
push eax
mov dword [esp + 0xe8], ebx
call fcn.10003d65
push ecx
push ecx
lea eax, [esp + 0xdc]
mov byte [esp + 0x14c], 6
push eax
lea ecx, [esp + 0xc8]
call fcn.10005f8a
push ebx
push 1
lea ecx, [esp + 0xdc]
mov byte [esp + 0x14c], 5
call fcn.10004184
xor eax, eax
lea edi, [esp + 0x68]
stosd dword es:[edi], eax
lea edx, [esp + 0x7c]
lea ecx, [esp + 0xbc]
stosd dword es:[edi], eax
stosw word es:[edi], ax
call fcn.1000721e
mov ecx, dword [ebp + 8]
push ebx
push 1
mov dword [ecx], eax
lea ecx, [esp + 0xc4]
call fcn.10004184
push ebx
push 1
lea ecx, [esp + 0x110]
call fcn.10004184
push ebx
push 1
lea ecx, [esp + 0xac]
call fcn.10004184
push ebx
push 1
lea ecx, [esp + 0x84]
call fcn.10004184
lea ecx, [esp + 0x48]
call fcn.1000b0fd
jmp 0x10008e7c
mov eax, dword [ebp + 8]
mov dword [eax], 1
jmp 0x10008e7c
mov dword [esp + 0x10], 0x2ba39464
xor ebx, ebx
mov dword [esp + 0x74], 1
mov dword [esp + 0x10], ebx
jmp 0x10008d77
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x94], 0x10c9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10008d64
mov dword [esp + 0x10], 3
cmp dword [esp + 0x10], ebx
jl 0x10008e7c
push 0x6113
push ecx
mov byte [esp + 0x1f], bl
lea edx, [esp + 0x1f]
push 1
call fcn.1000689e
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + eax*4 + 0x94]
mov eax, dword [esp + 0x10]
imul eax, dword [esp + eax*4 + 0x94], 0x1e27c
test eax, eax
je 0x10008dd3
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x94], ebx
jne 0x10008dd9
cmp dword [esp + 0x10], ebx
je 0x10008de7
cmp dword [esp + 0x98], ebx
je 0x10008de7
xor edx, edx
inc edx
jmp 0x10008de9
mov edx, ebx
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x94]
cmp edx, eax
mov eax, dword [esp + 0x9c]
setl cl
xor edx, edx
imul ecx, ecx, 0xfffa
cmp eax, ecx
mov eax, dword [esp + 0x10]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x74], ecx
dec dword [esp + 0x10]
jns 0x10008d90
jmp 0x10008e7c
cmp byte [ebp + 0x10], 0
je 0x10008e43
mov eax, dword [ebp + 0x14]
push edx
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov edx, dword [eax]
call fcn.10027404
pop ecx
jmp 0x10008e7c
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x10008e7c
xor ebx, ebx
mov edx, 0x585f
push ebx
push 1
push ebx
push 0x54b5
push 0x59f0
push 0x6b27
push 0x4df2
push 0x3690
mov ecx, 0x9e7
call fcn.10007a68
add esp, 0x20
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret