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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x100
mov dword [esp + 0xc], edx
mov eax, dword [0x1008e00c]
xor eax, ebp
mov dword [esp + 0xf8], eax
cmp byte [ecx + 0x14], 0
je 0x1000ff28
mov ebx, ecx
test byte [ecx + 0x10], 4
jne 0x1000ff3d
mov edi, dword [esp + 0xc]
test edi, edi
je 0x1000f3e7
mov edx, edi
mov esi, edx
mov al, byte [edx]
cmp al, 0xff
je 0x1000ff4e
mov edx, esi
cmp al, 0xeb
je 0x10010059
cmp esi, edx
jne 0x1000f3c1
mov edi, dword [esp + 0xc]
cmp esi, edi
jne 0x1001035d
mov dword [esp + 0x70], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x78], 0
mov eax, dword [0x1008f830]
mov ecx, dword [0x1008e3c8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jle 0x1000f455
push 0x1008f830
call fcn.1003ab89
add esp, 4
cmp dword [0x1008f830], 0xffffffff
jne 0x1000f455
lea esi, [esp + 0xa0]
push esi
call dword [0x1008be6c]
mov eax, dword [esi + 0x1c]
mov dword [0x1008f82c], eax
push 0x1008f830
call fcn.1003ab3f
add esp, 4
mov eax, dword [0x1008f82c]
mov dword [esp + 4], eax
xor ebx, ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x50], ebx
mov eax, dword [0x1008f838]
mov ecx, dword [0x1008e3c8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x1000fd09
push 0x1008f83c
call dword [0x1008be30]
cmp byte [esp + 0x50], 0
jne 0x1000ff64
mov dword [esp + 8], 0
mov edi, dword [0x1008f828]
test edi, edi
jne 0x1000f4d5
mov esi, 0xc
push esi
call fcn.1001ca10
add esp, 4
mov edi, eax
xor eax, eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi], esi
mov dword [0x1008f828], edi
cmp byte [esp + 0x50], 0
jne 0x1000ff9b
cmp dword [edi + 4], 0
jne 0x1000f53a
push 0x14
call fcn.1001ca10
add esp, 4
mov esi, eax
xorps xmm0, xmm0
movups xmmword [eax + 4], xmm0
mov eax, dword [edi + 4]
cmp eax, dword [edi + 8]
jne 0x1000f50b
mov ecx, edi
call fcn.10010a60
mov eax, dword [edi + 4]
lea eax, [eax + eax*2]
mov ecx, dword [edi]
mov dword [ecx + eax*4 + 4], ebx
mov edx, dword [esp + 8]
mov dword [ecx + eax*4], edx
mov dword [ecx + eax*4 + 8], esi
inc dword [edi + 4]
mov edi, dword [0x1008f828]
test edi, edi
je 0x1000ff13
cmp dword [edi + 4], 0
je 0x1000ff13
mov esi, dword [edi]
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x1001034b
cmp dword [esp + 4], 0
je 0x1001034b
cmp dword [ebx + 4], 0
jne 0x1000f5fe
mov edi, ebx
mov eax, dword [0x1008f830]
mov ecx, dword [0x1008e3c8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jle 0x1000f5b4
push 0x1008f830
call fcn.1003ab89
add esp, 4
cmp dword [0x1008f830], 0xffffffff
jne 0x1000f5b4
lea esi, [esp + 0xa0]
push esi
call dword [0x1008be6c]
mov eax, dword [esi + 0x1c]
mov dword [0x1008f82c], eax
push 0x1008f830
call fcn.1003ab3f
add esp, 4
mov ebx, dword [0x1008f82c]
mov ecx, dword [esp + 4]
mov eax, ecx
xor edx, edx
div ebx
sub ebx, edx
test edx, edx
cmove ebx, edx
add ebx, ecx
mov dword [edi + 8], ebx
call dword [0x1008be40]
cmp byte [esp + 0x50], 0
jne 0x1001027b
push 1
push 0x2000
push ebx
push 0
call dword [0x1008bf2c]
test eax, eax
je 0x1001033e
mov ebx, edi
mov dword [edi + 4], eax
mov esi, dword [ebx + 8]
push 0x1008f83c
call dword [0x1008beb0]
test esi, esi
cmove ebx, esi
je 0x10010356
mov eax, dword [0x1008f838]
mov ecx, dword [0x1008e3c8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x1000fd51
push 0x1008f83c
call dword [0x1008be30]
mov eax, dword [ebx + 4]
test eax, eax
je 0x1001034b
mov edi, dword [ebx + 0x10]
shl edi, 7
mov edx, edi
or edx, 0x7f
mov ecx, dword [ebx + 0xc]
cmp edx, ecx
jb 0x1000f6d8
cmp ecx, dword [ebx + 8]
jae 0x1001034b
mov eax, dword [0x1008f824]
mov ecx, dword [0x1008e3c8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x1000fdd8
mov eax, dword [ebx + 4]
add eax, dword [ebx + 0xc]
push 0x20
push 0x1000
push dword [0x1008f820]
push eax
call dword [0x1008bf2c]
test eax, eax
je 0x1001034b
mov eax, dword [0x1008f824]
mov ecx, dword [0x1008e3c8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x1000fe1a
mov eax, dword [0x1008f820]
add dword [ebx + 0xc], eax
mov eax, dword [ebx + 4]
add edi, eax
lea eax, [esp + 0xa4]
mov dword [eax - 4], ebx
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov ecx, 0x80
mov dword [eax + 0x14], ecx
mov byte [eax + 0x18], 1
push eax
push 0x40
push ecx
push edi
call dword [0x1008bf34]
test eax, eax
je 0x10010099
mov edx, dword [esp + 0xa0]
test edx, edx
je 0x100100a9
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov cl, byte [esp + 0xbc]
mov byte [esp + 4], cl
test edi, edi
mov dword [esp + 8], eax
je 0x1000f75c
test esi, esi
je 0x1000f75c
test eax, eax
je 0x1000f75c
cmp byte [esp + 4], 0
je 0x1000f75c
inc dword [ebx + 0x10]
mov dword [esp + 0x48], edx
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], esi
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x60], eax
mov byte [esp + 0x68], 1
push 0x1008f83c
mov ebx, edx
call dword [0x1008beb0]
mov dword [esp + 0x28], ebx
mov edx, dword [esp + 8]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x40], eax
mov al, byte [esp + 4]
mov byte [esp + 0x44], al
xor eax, eax
mov dword [esp + 0x4c], eax
mov byte [esp + 0x64], 0
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
test ebx, ebx
je 0x1000f820
cmp dword [esp + 0x18], 0
je 0x1000fc80
cmp dword [esp + 0x1c], 0
je 0x1000fc80
test edx, edx
je 0x1000fc80
cmp byte [esp + 4], 0
je 0x1000fc80
push dword [esp + 0x10]
call dword [0x1008be2c]
mov ecx, dword [esp + 0x38]
lea edx, [ecx + 4]
cmp dword [esp + 0x28], 0
je 0x100100e7
cmp edx, dword [esp + 0x40]
ja 0x100100f0
mov edx, dword [esp + 0x30]
mov dword [edx + ecx], eax
add dword [esp + 0x38], 4
cmp dword [esp + 0x28], 0
je 0x1000f886
mov al, byte [esp + 0x44]
cmp dword [esp + 0x30], 0
je 0x1000fc80
cmp dword [esp + 0x34], 0
je 0x1000fc80
cmp dword [esp + 0x2c], 0
je 0x1000fc80
test al, al
je 0x1000fc80
push dword [esp + 0xc]
call dword [0x1008be2c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
lea esi, [ecx + 4]
test edx, edx
je 0x100100fc
cmp esi, dword [esp + 0x40]
ja 0x10010146
mov edx, dword [esp + 0x30]
mov dword [edx + ecx], eax
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
add esi, 4
mov dword [esp + 0x38], esi
test eax, eax
je 0x10010100
mov dword [esp + 0x10], eax
mov al, byte [esp + 0x44]
cmp dword [esp + 0x30], 0
je 0x1000fc74
cmp dword [esp + 0x34], 0
je 0x1000fc74
cmp dword [esp + 0x2c], 0
je 0x1000fc74
test al, al
je 0x1000fc74
mov dword [esp + 0x3c], esi
xor eax, eax
dec eax
mov dword [esp + 4], eax
xor edi, edi
xor eax, eax
mov ebx, edi
mov ecx, dword [esp + 0xc]
mov cl, byte [ecx + ebx]
mov edx, ecx
cmp cl, 0x63
jg 0x1000f946
add dl, 0x10
cmp dl, 3
ja 0x1000f92c
cmp dl, 1
jne 0x10010158
add cl, 0xd2
cmp cl, 0x10
ja 0x1000f964
movzx ecx, cl
mov edx, 0x10101
bt edx, ecx
jae 0x1000f964
jmp 0x1000fe5c
add dl, 0x9c
cmp dl, 2
jb 0x1000fe5c
cmp cl, 0x66
je 0x1000fea9
cmp cl, 0x67
je 0x1000feb4
test al, 0xc
jne 0x1000fc74
mov edx, dword [esp + 0xc]
mov al, byte [edx + ebx]
mov ecx, eax
and cl, 0xfc
cmp cl, 0x88
jne 0x1000f9a6
movzx eax, byte [edx + ebx + 1]
mov edx, eax
shr edx, 6
xor ecx, ecx
inc ecx
cmp edx, 3
jne 0x1000fe76
lea edi, [ecx + ebx]
inc edi
mov dword [esp + 0x78], edi
cmp edi, 5
jb 0x1000f909
jmp 0x1000f9f8
cmp al, 0xe
jg 0x1000f9bb
cmp al, 0xa1
je 0x1000fe6e
cmp al, 0xb8
jne 0x1000f9cb
jmp 0x1000fe6e
cmp al, 0x33
je 0x10010218
cmp al, 0xf
je 0x1001022f
mov ecx, eax
and cl, 0xf8
cmp cl, 0x40
je 0x1000f9f3
cmp al, 0x68
je 0x1000fe6e
cmp al, 0x83
je 0x1000fede
mov ecx, eax
and cl, 0xf0
cmp cl, 0x50
jne 0x1000fef6
inc ebx
mov edi, ebx
jmp 0x1000f997
lea eax, [edi + esi]
cmp dword [esp + 0x10], 0
je 0x10010167
cmp eax, dword [esp + 0x40]
ja 0x1001018b
add esi, dword [esp + 0x30]
push edi
push dword [esp + 0x10]
push esi
call fcn.1007c344
add esp, 0xc
mov esi, dword [esp + 0x38]
add esi, edi
mov dword [esp + 0x38], esi
cmp dword [esp + 0x28], 0
mov eax, esi
je 0x1001016b
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1000fc74
cmp dword [esp + 0x34], 0
je 0x1000fc74
cmp dword [esp + 0x2c], 0
je 0x1000fc74
cmp byte [esp + 0x44], 0
je 0x1000fc74
cmp edi, 0x64
ja 0x1000fc74
mov ecx, dword [esp + 4]
test ecx, ecx
jns 0x10010195
mov ecx, dword [esp + 0x40]
cmp esi, ecx
jae 0x100101b2
invalid
add al, 0x30