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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x88
mov esi, edx
mov eax, dword [edx + 8]
cmp eax, dword [edx]
mov dword [esp + 8], ecx
jne 0x1009d81e
push eax
push esi
call fcn.10058365
add esp, 8
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x9c]
mov ecx, dword [esi + 4]
mov byte [ecx + eax], 0x2f
mov eax, dword [esi + 8]
inc eax
mov dword [esi + 8], eax
cmp eax, dword [esi]
jne 0x1009d844
push eax
push esi
call fcn.10058365
add esp, 8
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
mov byte [ecx + eax], 0x2f
mov eax, dword [esi + 8]
inc eax
mov dword [esp + 0x14], eax
mov dword [esi + 8], eax
mov dword [esp + 0x64], ebx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x68], ecx
lea eax, [esp + 0x50]
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov edi, dword [esi + 0x18]
mov dword [esp + 4], esi
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], 0
xor ebp, ebp
lea eax, [esp + 0x50]
push eax
call fcn.1009beee
add esp, 4
cmp eax, 0x3f
jg 0x1009d8a9
cmp eax, 0x23
je 0x1009d8fe
cmp eax, 0x2f
je 0x1009d8fe
cmp eax, 0x3f
jne 0x1009d8fb
jmp 0x1009d8fe
cmp eax, 0x40
je 0x1009d8bf
cmp eax, 0x5c
jne 0x1009d8f4
cmp byte [esp + 0xa4], 2
je 0x1009d8fb
jmp 0x1009d8fe
test edi, edi
je 0x1009d8e0
xor eax, eax
cmp dword [esp + 0x18], 0
setne al
lea eax, [eax*8 + 2]
push eax
push edi
mov eax, dword [esp + 0x14]
call dword [eax + 0x14]
add esp, 8
mov eax, dword [esp + 0x50]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1c], eax
mov esi, ebp
jmp 0x1009d8fb
cmp eax, 0x110000
je 0x1009d8fe
inc ebp
jmp 0x1009d886
mov edi, dword [esp + 0x18]
test edi, edi
je 0x1009dae7
test esi, esi
mov ebp, dword [esp + 4]
je 0x1009db05
mov eax, dword [esp + 0x14]
jle 0x1009db82
mov dword [esp + 0x20], 0
mov edi, 0x2600
mov dword [esp], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xa0]
cmp ebx, eax
je 0x1009df1b
mov ebp, ebx
mov cl, byte [ebp]
movzx edx, cl
test cl, cl
js 0x1009d960
lea ebx, [ebp + 1]
jmp 0x1009d9b2
and edx, 0x1f
movzx esi, byte [ebp + 1]
and esi, 0x3f
cmp cl, 0xdf
jbe 0x1009d999
movzx eax, byte [ebp + 2]
shl esi, 6
and eax, 0x3f
or eax, esi
cmp cl, 0xf0
jb 0x1009d9a3
lea ebx, [ebp + 4]
movzx ecx, byte [ebp + 3]
and edx, 7
shl edx, 0x12
shl eax, 6
and ecx, 0x3f
or ecx, eax
or edx, ecx
jmp 0x1009d9ab
lea ebx, [ebp + 2]
shl edx, 6
or edx, esi
jmp 0x1009d9b2
lea ebx, [ebp + 3]
shl edx, 0xc
or edx, eax
mov eax, dword [esp + 0xa0]
cmp edx, 0xd
ja 0x1009d9c7
bt edi, edx
jae 0x1009d9c7
mov ebp, ebx
cmp ebx, eax
jne 0x1009d951
jmp 0x1009df1b
cmp edx, 0x110000
je 0x1009df1b
mov dword [esp + 0x64], ebx
xor ecx, ecx
inc ecx
cmp edx, 0x80
jb 0x1009d9fd
mov ecx, 2
cmp edx, 0x800
jb 0x1009d9fd
cmp edx, 0x10000
mov ecx, 4
sbb ecx, 0
sub eax, ebp
cmp ecx, eax
jae 0x1009da0f
cmp byte [ebp + ecx], 0xbf
jg 0x1009da15
jmp 0x1009df25
jne 0x1009df25
cmp edx, 0x110000
je 0x1009df1b
cmp edx, 0x3a
jne 0x1009da78
cmp dword [esp + 0x10], 0
jne 0x1009da78
mov ebp, dword [esp + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0xc]
cmp edx, 1
je 0x1009db48
mov eax, ecx
mov dword [esp + 0x24], ecx
cmp ecx, dword [ebp]
jne 0x1009da60
push dword [esp + 0x24]
push ebp
call fcn.10058365
mov edx, dword [esp + 0x14]
add esp, 8
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
mov byte [ecx + eax], 0x3a
inc dword [ebp + 8]
mov al, 1
mov dword [esp], eax
xor eax, eax
inc eax
mov dword [esp + 0x10], eax
jmp 0x1009dace
test byte [esp], 1
mov eax, dword [esp + 0x20]
movzx eax, al
mov dword [esp + 0x4c], ecx
mov ecx, 1
cmove eax, ecx
mov dword [esp + 0x20], eax
mov esi, dword [esp + 4]
mov ecx, esi
lea eax, [esp + 0x64]
push eax
call fcn.1009fdd8
add esp, 4
mov dword [esp + 0x28], ebp
mov ebp, esi
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0x1012dd68
lea eax, [esp + 0x28]
push eax
push esi
call fcn.100a7730
add esp, 8
mov edx, dword [esp + 0xc]
lea esi, [edx - 1]
cmp edx, 1
jg 0x1009d93c
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
jmp 0x1009db4f
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
mov ebp, dword [esp + 4]
jmp 0x1009db86
lea eax, [esp + 0x28]
mov dword [eax], edi
mov ecx, dword [esp + 0x1c]
mov dword [eax + 4], ecx
push eax
call fcn.1009beee
add esp, 4
lea ecx, [eax - 0x23]
cmp ecx, 0x1c
ja 0x1009db33
mov edx, 0x10001001
bt edx, ecx
jae 0x1009db33
xor edi, edi
xor eax, eax
jmp 0x1009db82
cmp eax, 0x110000
mov esi, dword [esp + 8]
jne 0x1009dd34
mov eax, dword [esp + 0x14]
jmp 0x1009db86
mov esi, ecx
mov eax, ecx
xor edx, edx
inc edx
mov ecx, dword [esp + 0x20]
or cl, byte [esp]
test edx, edx
cmove esi, eax
test cl, 1
mov edi, dword [esp + 0x18]
je 0x1009db80
cmp eax, dword [ebp]
jne 0x1009db76
push eax
push ebp
call fcn.10058365
add esp, 8
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
mov byte [ecx + eax], 0x40
inc dword [ebp + 8]
mov eax, esi
mov esi, dword [esp + 8]
test edi, edi
je 0x1009dd0c
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], eax
movzx ebx, byte [esp + 0xa4]
lea esi, [esp + 0x28]
push ebx
push dword [esp + 0x20]
push edi
push esi
call fcn.1009df5c
add esp, 0x10
mov al, byte [esi]
cmp al, 3
jne 0x1009dbc7
mov al, byte [esp + 0x29]
mov esi, dword [esp + 8]
jmp 0x1009dd0c
mov dword [esp + 0x20], ebx
mov cl, byte [esp + 0x29]
movzx edx, word [esp + 0x3a]
mov word [esp + 0x62], dx
movups xmm0, xmmword [esp + 0x2a]
movups xmmword [esp + 0x52], xmm0
mov esi, dword [esp + 0x3c]
mov edi, ebp
mov ebp, dword [esp + 0x40]
mov byte [esp + 0x50], al
mov byte [esp + 0x51], cl
lea ecx, [esp + 0x64]
lea eax, [esp + 0x50]
mov dword [ecx], eax
mov dword [ecx + 4], 0x100a0fbb
mov dword [esp + 0x28], 0x1012dd78
xor eax, eax
inc eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
lea eax, [esp + 0x28]
push eax
push 0x1012e1d0
push edi
call fcn.100d6cd0
add esp, 0xc
test al, al
jne 0x1009df34
mov eax, dword [edi + 8]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x50], 0
jne 0x1009dc81
cmp dword [esp + 0x5c], 0
jne 0x1009dc81
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebp
lea eax, [esp + 0x28]
push eax
push 1
push 0x1012dd90
call fcn.1009be57
add esp, 0xc
xor ecx, ecx
cmp byte [esp + 0xa4], 2
jne 0x1009dcf7
test al, al
jne 0x1009dcf7
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebp
lea ebx, [esp + 0x28]
push ebx
call fcn.1009beee
add esp, 4
xor edi, edi
cmp eax, 0x3a
jne 0x1009ddd7
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 4]
mov al, byte [eax + 0x20]
mov byte [esp], al
xor ebx, ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebp
lea eax, [esp + 0x28]
push eax
call fcn.1009beee
add esp, 4
cmp eax, 0x110000
je 0x1009dd73
lea ecx, [eax - 0x30]
cmp ecx, 0xa
jae 0x1009dd54
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
lea eax, [edi + edi*4]
lea edi, [ecx + eax*2]
mov bl, 1
cmp edi, 0xffff
jbe 0x1009dcb5
mov cl, 2
mov esi, ecx
lea ecx, [esp + 0x50]
call fcn.1009b65c
mov eax, esi
mov esi, dword [esp + 8]
mov ebp, dword [esp + 4]
mov byte [esi + 4], al
mov dword [esi], 2
push ebp
call fcn.10001480
add esp, 4
push ebp
call fcn.1005a250
add esp, 4
mov eax, esi
add esp, 0x88
pop esi
pop edi
pop ebx
pop ebp
ret
cmp byte [esp + 0xa4], 2
je 0x1009db42
cmp eax, 0x5c
jne 0x1009db42
xor edi, edi
xor eax, eax
jmp 0x1009db86
cmp byte [esp], 0
jne 0x1009dd73
lea ecx, [eax - 0x23]
cmp ecx, 0x1c
ja 0x1009dd6c
mov edx, 0x10001001
bt edx, ecx
jb 0x1009dd73
mov cl, 2
cmp eax, 0x5c
jne 0x1009dcf7
test bl, 1
je 0x1009ddac
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0xa8]
test ecx, ecx
lea ebx, [esp + 0x28]
je 0x1009ddbb
cmp dword [esp + 0x10], ecx
jbe 0x1009ddb9
cmp byte [eax + ecx], 0xbf
jg 0x1009ddbb
push 0x1012ddac
push ecx
push 0
push dword [esp + 0x1c]
push eax
call fcn.10101780
mov dword [esp], 0
lea ebx, [esp + 0x28]
jmp 0x1009ddde
jne 0x1009dd9a
push ecx
push eax
call fcn.1009bdcd
add esp, 8
test ax, ax
je 0x1009dec4
cmp dx, di
jne 0x1009dec4
mov dword [esp], 0
mov eax, dword [esp + 0x60]
mov dword [esp + 0x38], eax
movups xmm0, xmmword [esp + 0x50]
movups xmmword [esp + 0x28], xmm0
push ebx
lea eax, [esp + 0x68]
push eax
call fcn.100a0856
add esp, 8
mov cl, byte [esp + 0x64]
movups xmm0, xmmword [esp + 0x65]
movups xmmword [esp + 0x78], xmm0
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x14], eax
je 0x1009de31
test cl, cl
jne 0x1009de31
mov esi, dword [esp + 8]
mov byte [esi + 4], 0
mov dword [esi], 2
mov ebp, dword [esp + 4]
jmp 0x1009dd15
mov eax, ebx
mov ebx, dword [esp + 4]
mov byte [esp + 0x4c], cl
mov ecx, dword [ebx + 8]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x28]
mov byte [ecx], 1
push ebp
push esi
push eax
mov ebp, dword [esp + 0x2c]
push ebp
push ebx
call fcn.1009e654
add esp, 0x14
mov dword [esp + 0x1c], eax
mov eax, edx
mov ecx, dword [ebx + 0x20]
lea edx, [esp + 0x28]
mov dword [edx + 0x20], ecx
movups xmm0, xmmword [ebx]
movups xmm1, xmmword [ebx + 0x10]
movups xmmword [edx + 0x10], xmm1
movups xmmword [edx], xmm0
mov cl, byte [esp + 0x4c]
mov byte [esp + 0x50], cl
movups xmm0, xmmword [esp + 0x78]
movups xmmword [esp + 0x51], xmm0
mov esi, dword [esp + 8]
mov ecx, esi
push eax
push dword [esp + 0x20]
push dword [esp + 0x20]
push edi
push dword [esp + 0x10]
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [esp + 0x44]
push dword [esp + 0xcc]
push ebp
call fcn.1009f4d8
add esp, 0x2c
jmp 0x1009dd27
lea eax, [esp + 0x78]
mov word [eax], di
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], fcn.100db710
mov dword [esp + 0x28], 0x1012dd94
xor ecx, ecx
inc ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], 0
lea eax, [esp + 0x64]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
push ebx
push 0x1012e1d0
push dword [esp + 0xc]
call fcn.100d6cd0
add esp, 0xc
test al, al
jne 0x1009df4f
xor eax, eax
inc eax
mov dword [esp], eax
jmp 0x1009ddde
push 0x1012dd58
call fcn.10101170
push 0x1012dce4
push ecx
push 0
push eax
push ebp
call fcn.10101780
push 0x1012dd80
push 0x1012dab0
lea eax, [esp + 0x30]
push eax
push 0x2b
push 0x1012da84
call fcn.10101580
push 0x1012dd9c
push 0x1012dab0
push ebx
jmp 0x1009df43