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

Disassembly:
sub esp, 0x7c
mov eax, dword [0x101366b4]
xor eax, esp
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x84]
push ebx
push ebp
push esi
push edi
lea edi, [eax + 0x18]
mov dword [esp + 0x28], eax
mov ebp, dword [edi + 0x48]
xor ebx, ebx
push 0xfffffffffffffffe
mov eax, ebx
mov dword [esp + 0x3c], edi
pop ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x4c]
push eax
push dword [edi + 8]
mov dword [esp + 0x3c], ebp
push dword [edi + 0x14]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x28], Ordinal_2
mov dword [esp + 0x68], ebx
mov dword [esp + 0x58], ebx
call fcn.10116e40
mov esi, eax
test esi, esi
js 0x1009ca30
xor eax, eax
inc eax
cmp dword [ebp + 0x28], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x20], eax
je 0x1009c44b
push ebp
push dword [esp + 0x2c]
call fcn.100a6d82
mov ebp, dword [ebp + 0x28]
test eax, eax
je 0x1009c3f2
push 0
push 0x28
lea ecx, [esp + 0x68]
push ecx
push dword [eax + 0x28]
push ebx
call fcn.1003c930
mov esi, eax
test esi, esi
js 0x1009ca30
mov ecx, dword [esp + 0x80]
jmp 0x1009c447
xor eax, eax
inc eax
cmp dword [ebp], eax
jne 0x1009c43b
push 0
push 0x28
lea eax, [esp + 0x68]
push eax
push dword [ebp + 0x28]
push ebx
call fcn.1003c930
mov esi, eax
test esi, esi
js 0x1009ca30
test dword [ebp + 0xa0], 0x800
mov eax, dword [esp + 0x14]
push 1
pop ecx
cmovne eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x20], eax
jmp 0x1009c44b
mov eax, dword [ebp + 4]
test eax, eax
je 0x1009c44b
imul ecx, eax, 3
shr ecx, 1
mov dword [esp + 0x20], ecx
mov eax, dword [edi + 0xc0]
mov ebp, dword [esp + 0xa8]
test eax, eax
je 0x1009c4ba
push eax
push 5
xor ecx, ecx
test ebp, ebp
pop eax
cmovne eax, ecx
push eax
push 0x64
call fcn.10096d95
push edx
push eax
push ebp
call fcn.10096d95
push edx
push eax
push ebx
call fcn.1008fe1d
mov esi, eax
test esi, esi
js 0x1009ca2e
push dword [esp + 0x20]
push edi
push dword [esp + 0x30]
call fcn.1009d54f
and dword [esp + 0x2c], 0
xor eax, eax
mov dword [esp + 0x24], eax
xor edx, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
imul eax, ebp
push 0x64
pop ecx
sub ecx, ebp
div ecx
mov dword [esp + 0x58], eax
cmp dword [edi + 0x8c], 2
jne 0x1009c520
cmp dword [esp + 0xa0], 0
je 0x1009c520
cmp dword [esp + 0x14], 0
je 0x1009c520
mov eax, dword [esp + 0x34]
imul edx, dword [eax + 0x34], 0x14
mov ecx, dword [eax + 0x30]
add edx, ecx
jmp 0x1009c4f2
mov eax, dword [ecx]
and eax, 0x1ff
cmp eax, 2
jne 0x1009c520
add ecx, 0x14
cmp ecx, edx
jb 0x1009c4e3
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x5c]
push dword [esp + 0x28]
push ebp
push dword [esp + 0xa8]
push dword [esp + 0x3c]
push ebx
call fcn.1009bcae
mov esi, eax
mov eax, dword [esp + 0x18]
jmp 0x1009ca83
mov eax, dword [esp + 0x34]
xor edx, edx
mov ecx, dword [edi + 0xa4]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 0x34]
lea ebp, [ecx + eax*4]
mov eax, dword [edi + 0xa0]
mov dword [esp + 0x50], ebp
sub ebp, ecx
add ebp, 3
mov dword [esp + 0x40], eax
xor eax, eax
shr ebp, 2
and dword [esp + 0x3c], eax
cmp ecx, dword [esp + 0x50]
mov dword [esp + 0x14], eax
cmova ebp, dword [esp + 0x3c]
test ebp, ebp
je 0x1009c5dc
mov edi, dword [esp + 0x40]
cmp dword [ecx], 4
jne 0x1009c5c1
push 9
push 0x18
lea eax, [esp + 0x68]
push eax
push edi
push dword [esp + 0xa8]
push ebx
call fcn.1003c7e0
mov esi, eax
test esi, esi
js 0x1009c5b9
test byte [esp + 0x74], 0x10
je 0x1009c5b9
mov eax, dword [edi]
push 7
push dword [esp + 0x9c]
mov dword [esp + 0x38], eax
push ebx
call fcn.1003cd20
test eax, eax
mov eax, dword [esp + 0x30]
push 0xfffffffffffffffe
pop ecx
cmovs eax, ecx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add ecx, 4
add edi, 4
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
cmp eax, ebp
jb 0x1009c56b
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
and dword [esp + 0x10], 0
test edx, edx
jne 0x1009c5ee
and dword [esp + 0x48], edx
jmp 0x1009c797
mov eax, dword [esp + 0x34]
mov ecx, dword [edi + 0xa0]
mov edx, dword [edi + 0xa8]
and dword [esp + 0x14], 0
mov eax, dword [eax + 0x30]
mov ebp, dword [edi + 0xac]
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0xa4]
jmp 0x1009c6f9
push dword [esp + 0xa4]
lea esi, [esp + 0x58]
push 4
push esi
push dword [ecx]
push dword [esp + 0xa8]
push dword [esp + 0x28]
push dword [esp + 0xb4]
push dword [ebp]
push dword [edx]
push dword [eax]
lea eax, [esp + 0x38]
push dword [esp + 0x6c]
push dword [esp + 0x54]
push eax
push ebx
call fcn.1009afde
mov esi, eax
test esi, esi
jns 0x1009c699
cmp esi, 0xfffffbf7
je 0x1009c779
cmp esi, 0xfffffc0d
je 0x1009c779
cmp esi, 0xfffffc0a
je 0x1009c779
cmp esi, 0xfffff8ec
je 0x1009c779
cmp esi, 0xfffff8f0
je 0x1009c779
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x1009c6b3
cmp dword [esp + 0x2c], eax
jne 0x1009c6b3
cmp esi, 0xfffff9bd
je 0x1009c81c
test esi, esi
js 0x1009c9d8
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
cmp dword [ecx], eax
jne 0x1009c6dc
mov eax, dword [esp + 0x54]
cmp eax, dword [esp + 0x1c]
jle 0x1009c6dc
mov dword [esp + 0x1c], eax
xor eax, eax
inc eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x38]
add ecx, 4
mov edx, dword [esp + 0x3c]
add eax, 4
add dword [esp + 0x44], 0x14
add edx, 4
inc dword [esp + 0x14]
add ebp, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
cmp eax, dword [esp + 0x50]
jb 0x1009c61b
mov ebp, dword [esp + 0x10]
test ebp, ebp
je 0x1009c731
test dword [edi + 0x80], 0x100
je 0x1009c8ca
test byte [edi + 0x34], 8
jne 0x1009c8ca
xor eax, eax
push eax
push eax
push eax
push dword [esp + 0xa4]
push ebx
call fcn.1003d2f0
mov esi, eax
test esi, esi
jns 0x1009c8b6
cmp esi, 0xfffffbf7
je 0x1009c779
cmp esi, 0xfffffc0d
je 0x1009c779
cmp esi, 0xfffffc0a
je 0x1009c779
cmp esi, 0xfffff8ec
je 0x1009c779
cmp esi, 0xfffff8f0
jne 0x1009c890
push dword [esp + 0x98]
lea eax, [esp + 0x4c]
push esi
push eax
push edi
push ebx
call fcn.1009cdc5
mov esi, eax
test esi, esi
js 0x1009ca08
push 0
push dword [esp + 0x9c]
push ebx
call fcn.1003cd20
mov esi, eax
test esi, esi
jns 0x1009c7d4
cmp esi, 0xfffffbf7
je 0x1009c779
cmp esi, 0xfffffc0d
je 0x1009c779
cmp esi, 0xfffffc0a
je 0x1009c779
cmp esi, 0xfffff8ec
je 0x1009c779
cmp esi, 0xfffff8f0
je 0x1009c779
cmp esi, 0xfffffbb2
je 0x1009c8c6
cmp esi, 0xfffffbad
je 0x1009c8c6
cmp esi, 0xffffec76
je 0x1009c8c6
cmp esi, 0xfffffc07
je 0x1009c8c6
cmp esi, 0xfffff9b5
je 0x1009c8c6
test esi, esi
jns 0x1009c5ee
mov eax, dword [esp + 0x24]
xor ebp, ebp
inc ebp
push 0xfffffffffffffffe
pop ecx
cmp ecx, dword [esp + 0x30]
je 0x1009ca83
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x1009ca83
test esi, esi
jns 0x1009c848
cmp esi, 0xfffff9bd
jne 0x1009ca70
push 0xb
push 0xc
lea eax, [esp + 0x68]
push eax
push 0
push dword [esp + 0xa8]
push ebx
call fcn.1003c7e0
test eax, eax
js 0x1009ca52
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x68]
cmp dword [esp + 0x68], 0
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x1c], eax
jl 0x1009ca48
cmp ecx, eax
jle 0x1009ca56
jmp 0x1009ca4c
cmp esi, 0xfffff9bb
jne 0x1009c8bd
push 3
push dword [esp + 0x9c]
push ebx
call fcn.1003cd20
mov esi, eax
test esi, esi
js 0x1009ca08
mov esi, 0xfffff9bb
and dword [esp + 0x18], 0
jmp 0x1009c8ca
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
jmp 0x1009c8ca
mov ebp, dword [esp + 0x10]
test ebp, ebp
jne 0x1009c8d2
test esi, esi
jns 0x1009c8eb
push esi
push dword [esp + 0x14]
push edi
push dword [esp + 0x34]
call fcn.1009bbb6
mov esi, eax
test esi, esi
js 0x1009ca08
mov eax, dword [edi + 0xc0]
test eax, eax
je 0x1009c94e
mov ebp, dword [esp + 0x2c]
inc ebp
mov dword [esp + 0x2c], ebp
cmp ebp, 0x32
jb 0x1009c94e
mov esi, dword [esp + 0x24]
and dword [esp + 0x2c], 0
add esi, ebp
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], esi
cmp esi, ecx
jbe 0x1009c921
add ecx, 0x64
mov dword [esp + 0x20], ecx
mov ebp, dword [esp + 0x58]
push eax
push 0
lea eax, [ecx + ebp]
push eax
call fcn.10096d95
push edx
push eax
lea eax, [esi + ebp]
push eax
call fcn.10096d95
push edx
push eax
push ebx
call fcn.1008fe1d
mov esi, eax
test esi, esi
js 0x1009ca08
and dword [esp + 0x48], 0
xor ebp, ebp
push 0
inc ebp
push ebp
push dword [esp + 0xa4]
push ebx
call fcn.1003cb30
mov edx, dword [esp + 0x18]
mov esi, eax
test esi, esi
jns 0x1009c5dc
cmp esi, 0xfffffbf7
je 0x1009c99c
cmp esi, 0xfffffc0d
je 0x1009c99c
cmp esi, 0xfffffc0a
je 0x1009c99c
cmp esi, 0xfffff8ec
je 0x1009c99c
cmp esi, 0xfffff8f0
jne 0x1009c9c7
push 0xffffffffffffffff
push esi
lea eax, [esp + 0x50]
push eax
push edi
push ebx
call fcn.1009cdc5
mov esi, eax
test esi, esi
js 0x1009ca0b
push 0
push ebp
push dword [esp + 0xa4]
push ebx
call fcn.1003cb30
mov esi, eax
test esi, esi
js 0x1009c974
test esi, esi
jns 0x1009c5d8
mov eax, dword [esp + 0x24]
jmp 0x1009c81f
cmp esi, 0xfffffbe8
jne 0x1009ca08
sub ebp, dword [edi + 0xac]
xor eax, eax
push eax
push eax
push eax
push 0xffffe062
push eax
push eax
mov eax, dword [esp + 0x4c]
sar ebp, 2
mov eax, dword [eax + 0x49c]
push dword [eax + ebp*4]
push ebx
call fcn.100378e0
xor ebp, ebp
inc ebp
mov eax, dword [edi + 0xc0]
test eax, eax
je 0x1009ca1d
push 0
push 3
push ebp
push ebx
call eax
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x50]
push dword [edi + 0x14]
call fcn.10116e40
mov eax, esi
mov ecx, dword [esp + 0x88]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10117cfd
add esp, 0x7c
ret 0x1c
cmp ecx, eax
jge 0x1009ca56
mov dword [esp + 0x1c], ecx
jmp 0x1009ca56
inc dword [esp + 0x1c]
push ebp
lea eax, [esp + 0x20]
push eax
push 0
push dword [esp + 0xa4]
push ebx
call fcn.1003cad0
test eax, eax
cmovs esi, eax
push 6
push dword [esp + 0x9c]
push ebx
call fcn.1003cd20
mov eax, dword [esp + 0x24]
cmp esi, 0xfffff9bd
jne 0x1009ca08
mov ebp, dword [esp + 0x2c]
add ebp, eax
mov eax, dword [edi + 0xc0]
test eax, eax
je 0x1009cac2
push eax
push 6
push ebp
call fcn.10096d95
push edx
push eax
push ebp
call fcn.10096d95
push edx
push eax
push ebx
call fcn.1008fe1d
mov esi, eax
test esi, esi
js 0x1009ca08
mov eax, dword [edi + 0xc0]
test eax, eax
je 0x1009caf0
push eax
push 2
push ebp
call fcn.10096d95
push edx
push eax
push 0
call fcn.10096d95
push edx
push eax
push ebx
call fcn.1008fe1d
mov esi, eax
test esi, esi
js 0x1009ca08
lea eax, [esp + 0x54]
mov dword [edi + 0xd4], ebp
push eax
push dword [esp + 0x50]
push dword [edi + 0x14]
call fcn.10116e40
push edi
push dword [esp + 0x2c]
push ebx
call fcn.1009bc67
jmp 0x1009ca30