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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
push ebx
mov eax, ecx
mov dword [esp + 0x30], edx
xor ecx, ecx
mov dword [esp + 0x3c], eax
xorps xmm0, xmm0
push esi
push edi
movlpd qword [esp + 0x60], xmm0
cmp word [ebp + 0x10], cx
je 0x1009308d
mov eax, dword [eax]
mov eax, dword [eax]
test byte [eax + 0x4c], 0x40
je 0x1009308d
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [edx]
mov dword [esp + 0x90], eax
cmp eax, 0x3f
ja 0x10093084
movzx ebx, ax
xor edx, edx
xor esi, esi
mov edi, dword [esp + 0x64]
mov eax, ebx
movlpd qword [esp + 0x80], xmm0
bts edx, eax
movlpd qword [esp + 0x48], xmm0
cmp eax, 0x20
mov byte [esp + 0x24], 1
mov dword [esp + 0x34], ebx
cmovae esi, edx
mov dword [esp + 0x10], edi
xor edx, esi
cmp eax, 0x40
mov eax, 0x182
cmovae esi, edx
add edx, 0xffffffff
mov dword [esp + 0x78], edx
mov edx, dword [ebp + 0xc]
adc esi, 0xffffffff
and edx, 0x800
mov dword [esp + 0x40], esi
mov dword [esp + 0x8c], edx
mov edx, 0x183
cmovne eax, edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x7c], eax
xor esi, esi
mov eax, dword [esp + 0x84]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x58], eax
lea esp, [esp]
mov eax, dword [esp + 0x40]
cmp edi, eax
ja 0x10093820
jb 0x10093158
cmp edx, dword [esp + 0x78]
jae 0x10093824
movzx eax, word [ebp + 0x10]
cmp esi, eax
jg 0x1009381c
test esi, esi
jle 0x10093182
mov ebx, dword [esp + 0x58]
or ebx, dword [ecx + 8]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x6c]
or ebx, dword [ecx + 0xc]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x34]
cmp esi, eax
jge 0x100931a5
cmp word [esp + 0x8c], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov esi, dword [eax + esi*4]
mov dword [esp + 0x28], esi
je 0x100931ac
mov ecx, esi
jmp 0x100937fa
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x28], esi
test dword [esi + 0x24], 0x400
jne 0x10093810
mov eax, dword [ebp + 0xc]
and eax, 0x80
mov dword [esp + 0x80], eax
je 0x100931d0
xor eax, eax
mov word [esi + 0x1e], ax
movzx eax, byte [esi + 0x10]
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8 + 0x34]
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x2c], eax
test ebx, ebx
jle 0x10093329
mov ebx, dword [esp + 0x38]
add ebx, 4
mov dword [esp + 0x18], ebx
nop
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov dword [esp + 0x48], ecx
cmovae edx, ecx
and ecx, dword [esp + 0x1c]
mov eax, edx
mov dword [esp + 0x30], edx
and eax, edi
or ecx, eax
jne 0x10093309
mov esi, dword [ebx]
test esi, esi
je 0x10093253
mov eax, dword [esi + 4]
test eax, 0x41000
je 0x10093253
test eax, 0x40000
je 0x1009324c
mov eax, dword [esi + 0x14]
mov esi, dword [eax + 4]
jmp 0x1009324f
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x10093233
cmp byte [esi], 0xa4
jne 0x10093309
mov edx, dword [esp + 0x3c]
cmp dword [esi + 0x1c], edx
jne 0x10093309
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x58]
movzx eax, ax
not ecx
push 0
push eax
mov eax, dword [esp + 0x74]
not eax
push eax
movsx eax, word [esi + 0x20]
push ecx
mov ecx, dword [esp + 0x54]
push eax
lea ecx, [ecx + 0x50]
call fcn.1008f420
mov edi, eax
add esp, 0x14
test edi, edi
je 0x10093305
movzx ebx, word [edi + 0xc]
cmp ebx, 1
jne 0x100932c5
mov eax, dword [esp + 0x28]
xor ecx, ecx
movzx edx, word [eax + 0x28]
test edx, edx
jle 0x100932c1
mov eax, dword [eax + 0x30]
cmp edi, dword [eax]
je 0x100932c1
inc ecx
add eax, 4
cmp ecx, edx
jl 0x100932b5
cmp ecx, edx
jge 0x10093305
test bl, 0x82
je 0x100932eb
cmp word [esi + 0x20], 0
jl 0x100932eb
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
push dword [edi]
mov ecx, dword [eax]
mov edx, dword [edx]
call fcn.1004e8d0
add esp, 4
test eax, eax
je 0x10093305
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
or edx, dword [esp + 0x48]
or edi, dword [esp + 0x30]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], edi
jmp 0x10093309
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x18], 0x14
inc eax
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x34]
jl 0x10093200
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 0x24]
test eax, 0x1000
jne 0x100936b6
test eax, 0x100
je 0x10093355
mov dword [esp + 0x50], 0
mov ecx, 1
mov dword [esp + 0x48], 0
jmp 0x10093391
mov edx, dword [esi + 0x20]
mov dword [esp + 0x50], edx
test edx, edx
je 0x10093084
test byte [edx + 0x38], 4
jne 0x10093084
cmp byte [edx + 0x36], 0
movzx ecx, word [edx + 0x32]
mov dword [esp + 0x48], ecx
movzx ecx, word [edx + 0x34]
je 0x1009338c
mov byte [esp + 0x24], 1
test eax, 0x8000
je 0x10093391
mov byte [esp + 0x24], 0
xor al, al
mov byte [esp + 0x22], 0
mov dword [esp + 0x2c], eax
xor edx, edx
movzx eax, cx
mov byte [esp + 0x23], 0
mov dword [esp + 0x18], edx
mov dword [esp + 0x60], eax
test eax, eax
jle 0x100936b6
mov dword [esp + 0x30], edx
lea ebx, [ebx]
movzx ebx, word [esi + 0x18]
mov byte [esp + 0xf], 1
cmp edx, ebx
jge 0x1009342d
movzx eax, word [esi + 0x2a]
cmp edx, eax
jl 0x1009342d
mov edi, dword [esi + 0x30]
mov esi, dword [edi + edx*4]
movzx ecx, word [esi + 0xc]
mov eax, ecx
and eax, dword [esp + 0x7c]
test ax, ax
je 0x10093400
test ecx, 0x180
je 0x10093699
mov byte [esp + 0x24], 0
jmp 0x10093699
test cl, 1
je 0x1009342d
mov esi, dword [esi]
inc edx
cmp edx, ebx
jge 0x10093429
mov ecx, dword [esp + 0x18]
inc ecx
lea ecx, [edi + ecx*4]
mov eax, dword [ecx]
cmp dword [eax], esi
je 0x10093424
inc edx
add ecx, 4
cmp edx, ebx
jl 0x10093414
jmp 0x10093429
mov byte [esp + 0xf], 0
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x50]
test edi, edi
je 0x1009345a
mov eax, dword [edi + 4]
movsx esi, word [eax + edx*2]
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x54], esi
mov cl, byte [edx + eax]
mov eax, dword [edi + 0xc]
and cl, 1
mov byte [esp + 0x17], cl
movsx eax, word [eax + 0x28]
cmp esi, eax
jne 0x10093466
jmp 0x1009345f
mov byte [esp + 0x17], 0
or esi, 0xffffffff
mov dword [esp + 0x54], esi
cmp byte [esp + 0x24], 0
je 0x10093493
test esi, esi
js 0x10093493
cmp edx, ebx
jl 0x10093493
mov eax, dword [edi + 0xc]
lea ecx, [esi + esi*4]
mov edx, dword [esp + 0x24]
xor edi, edi
movzx edx, dl
mov eax, dword [eax + 4]
cmp byte [eax + ecx*4 + 0xc], 0
cmove edx, edi
mov dword [esp + 0x24], edx
xor edi, edi
cmp byte [esp + 0xf], 0
je 0x100935e7
mov ebx, dword [esp + 0x38]
add ebx, 4
jmp 0x100934b0
cmp edi, dword [esp + 0x34]
jge 0x100935e7
xor edx, edx
xor ecx, ecx
mov eax, edi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x1c]
and ecx, dword [esp + 0x10]
or edx, ecx
jne 0x1009358d
mov ecx, dword [ebx]
test ecx, ecx
je 0x10093510
jmp 0x100934f0
mov eax, dword [ecx + 4]
test eax, 0x41000
je 0x10093510
test eax, 0x40000
je 0x10093509
mov ecx, dword [ecx + 0x14]
mov ecx, dword [ecx + 4]
jmp 0x1009350c
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x100934f0
mov al, byte [ebp + 0xc]
and al, 0xc0
neg al
sbb al, al
and byte [esp + 0xf], al
cmp esi, 0xffffffff
jl 0x10093538
cmp byte [ecx], 0xa4
jne 0x1009358d
mov eax, dword [esp + 0x3c]
cmp dword [ecx + 0x1c], eax
jne 0x1009358d
movsx eax, word [ecx + 0x20]
cmp eax, esi
jmp 0x10093555
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x30]
push dword [esp + 0x3c]
mov eax, dword [eax + 0x28]
mov edx, dword [eax + edx + 4]
call fcn.10056120
add esp, 4
test eax, eax
jne 0x1009358d
cmp esi, 0xffffffff
je 0x100935a5
mov eax, dword [esp + 0x44]
mov edx, dword [ebx]
mov esi, dword [eax]
mov ecx, esi
call fcn.1004e730
test eax, eax
jne 0x10093574
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + ecx*4]
mov ecx, dword [eax]
call fcn.1001c790
test eax, eax
je 0x100935a1
inc edi
add ebx, 0x14
cmp byte [esp + 0xf], 0
je 0x100935e7
mov esi, dword [esp + 0x54]
jmp 0x100934b0
mov esi, dword [esp + 0x54]
cmp word [esp + 0x80], 0
mov ebx, dword [esp + 0x28]
je 0x100935bd
mov eax, dword [esp + 0x18]
inc eax
mov word [ebx + 0x1e], ax
test byte [ebp + 0xc], 0x40
jne 0x10093645
mov ecx, dword [esp + 0x38]
lea eax, [edi + edi*4]
mov al, byte [ecx + eax*4 + 0xc]
and al, 1
cmp byte [esp + 0x22], 0
je 0x10093615
mov cl, byte [esp + 0x17]
xor cl, byte [esp + 0x23]
cmp cl, al
je 0x10093645
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x100935fa
mov eax, dword [esp + 0x48]
movzx eax, ax
cmp ecx, eax
jge 0x100935ff
mov byte [esp + 0x24], 0
mov eax, dword [esp + 0x2c]
test al, al
je 0x100936b6
mov byte [esp + 0x24], 1
jmp 0x100936c1
xor al, byte [esp + 0x17]
mov byte [esp + 0x23], al
je 0x10093640
mov eax, dword [esp + 0x5c]
xor ecx, ecx
bts ecx, eax
xor edx, edx
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov eax, dword [ebp + 0x18]
cmovae edx, ecx
or dword [eax], ecx
or dword [eax + 4], edx
mov byte [esp + 0x22], 1
mov ecx, dword [esp + 0x38]
lea eax, [edi + edi*4]
mov edx, dword [esp + 0x18]
test byte [ecx + eax*4 + 0xc], 2
je 0x10093666
movzx eax, word [ebx + 0x18]
cmp edx, eax
jne 0x100935e7
or dword [ebx + 0x24], 0x80000
mov eax, dword [esp + 0x2c]
cmp esi, 0xffffffff
movzx eax, al
mov ecx, 1
cmove eax, ecx
xor ecx, ecx
mov dword [esp + 0x2c], eax
xor eax, eax
bts eax, edi
cmp edi, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edi, 0x40
cmovae ecx, eax
or dword [esp + 0x1c], eax
or dword [esp + 0x10], ecx
add dword [esp + 0x30], 0x14
inc edx
mov dword [esp + 0x18], edx
cmp edx, dword [esp + 0x60]
jge 0x100935ff
mov esi, dword [esp + 0x28]
jmp 0x100933c0
cmp byte [esp + 0x24], 0
je 0x100937ea
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x34]
or eax, dword [ecx + 8]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x70]
or eax, dword [ecx + 0xc]
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x3c], eax
test ebx, ebx
jle 0x100937f2
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
add ebx, 4
mov dword [esp + 0x2c], ebx
lea esp, [esp]
xor esi, esi
xor edi, edi
bts esi, eax
cmp eax, 0x20
cmovae edi, esi
xor esi, edi
cmp eax, 0x40
mov ecx, esi
cmovae edi, esi
and ecx, dword [esp + 0x1c]
mov eax, edi
and eax, edx
or ecx, eax
jne 0x100937ce
mov ebx, dword [ebx]
test ebx, ebx
je 0x10093742
mov ecx, dword [esp + 0x44]
mov edx, ebx
lea ecx, [ecx + 0x1e8]
call fcn.1008eb80
mov ecx, edx
jmp 0x10093753
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x48], eax
or eax, ecx
mov dword [esp + 0x30], ecx
jne 0x100937aa
mov dword [esp + 0x98], fcn.10050aa0
mov eax, 1
mov word [esp + 0xa8], ax
mov dword [esp + 0x9c], 0x10050930
mov dword [esp + 0xac], 0
test ebx, ebx
je 0x100937aa
mov edx, ebx
lea ecx, [esp + 0x94]
call fcn.1004bd50
cmp word [esp + 0xa8], 0
je 0x100937ca
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
not ecx
and ecx, dword [esp + 0x48]
not eax
and eax, dword [esp + 0x30]
or ecx, eax
jne 0x100937ca
or dword [esp + 0x1c], esi
or dword [esp + 0x10], edi
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
add dword [esp + 0x2c], 0x14
inc eax
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x34]
jl 0x10093700
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x5c]
inc esi
cmp byte [esp + 0x24], 0
mov dword [esp + 0x5c], esi
jne 0x10093140
jmp 0x1009381c
cmp byte [esi + 0x1d], 0
je 0x1009381c
test byte [ebp + 0xc], 0x80
je 0x1009382a
mov eax, dword [esp + 0x40]
cmp edx, dword [esp + 0x78]
jne 0x10093838
cmp edi, eax
jne 0x10093838
mov al, byte [esp + 0x90]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esp + 0x24], 0
jne 0x1009388e
dec ebx
test ebx, ebx
jle 0x10093084
xor ecx, ecx
xor edx, edx
mov eax, ebx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
add ecx, 0xffffffff
mov eax, ecx
adc edx, 0xffffffff
and eax, dword [esp + 0x1c]
mov esi, edx
and esi, edi
cmp eax, ecx
jne 0x10093877
cmp esi, edx
je 0x10093885
dec ebx
test ebx, ebx
jg 0x10093848
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
or al, 0xff
pop ebx
mov esp, ebp
pop ebp
ret