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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xd0
mov ebx, ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x1011daf0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov esi, dword [edx + 0x1c]
test esi, esi
mov dword [ebp - 0x20], ebx
je 0x1011704b
mov dword [ebp - 0x3c], edx
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov edi, 0
mov ecx, 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], esi
cmp esi, 4
jb 0x10116efe
mov esi, dword [ebp - 0x28]
mov ecx, esi
and ecx, 0xfffffffc
pcmpeqd xmm3, xmm3
movdqa xmm4, xmmword [0x104907c0]
mov eax, ecx
mov edx, dword [ebp - 0x48]
pxor xmm0, xmm0
pxor xmm1, xmm1
pxor xmm5, xmm5
movd xmm6, dword [edx + 0x24]
movd xmm7, dword [edx + 0x18]
punpckldq xmm7, xmm6
movd xmm6, dword [edx + 0xc]
movd xmm2, dword [edx]
punpckldq xmm2, xmm6
punpcklqdq xmm2, xmm7
movdqa xmm6, xmm2
pcmpeqd xmm6, xmmword [0x103972c0]
psubd xmm5, xmm6
paddd xmm0, xmm6
pcmpeqd xmm2, xmm4
psubd xmm1, xmm2
psubd xmm0, xmm3
add edx, 0x30
add eax, 0xfffffffc
jne 0x10116e70
pshufd xmm2, xmm5, 0xee
paddd xmm2, xmm5
pshufd xmm3, xmm2, 0x55
paddd xmm3, xmm2
movd dword [ebp - 0x30], xmm3
pshufd xmm2, xmm1, 0xee
paddd xmm2, xmm1
pshufd xmm1, xmm2, 0x55
paddd xmm1, xmm2
movd edi, xmm1
pshufd xmm1, xmm0, 0xee
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0x55
paddd xmm0, xmm1
movd ebx, xmm0
cmp esi, ecx
je 0x10116f3d
mov eax, dword [ebp - 0x28]
sub eax, ecx
lea ecx, [ecx + ecx*2]
mov edx, dword [ebp - 0x48]
lea ecx, [edx + ecx*4]
nop dword [eax]
mov dword [ebp - 0x34], edi
mov esi, dword [ecx]
xor edx, edx
mov edi, ebx
xor ebx, ebx
test esi, esi
sete dl
setne bl
add dword [ebp - 0x30], edx
add edi, ebx
mov ebx, edi
mov edi, dword [ebp - 0x34]
xor edx, edx
cmp esi, 1
sete dl
add edi, edx
add ecx, 0xc
dec eax
jne 0x10116f10
mov dword [ebp - 0x34], edi
xor ecx, ecx
mov edx, dword [ebp - 0x30]
test edx, edx
jne 0x101170bc
test ebx, ebx
je 0x101170bc
mov dword [ebp - 0x50], ebx
mov eax, dword [ebp - 0x20]
mov edi, dword [eax + 0x78]
mov ecx, dword [eax + 0x7c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [eax + 0x74]
dec ecx
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x28]
cmp ecx, 2
mov esi, 1
cmovae esi, ecx
mov dword [ebp - 0x4c], esi
mov ebx, dword [eax + 0x70]
movdqa xmm0, xmmword [0x10490fb0]
movsd xmm1, qword [0x10490840]
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x44], edi
jmp 0x10116fb1
xor eax, eax
movzx eax, al
add esi, eax
inc ecx
cmp ecx, dword [ebp - 0x4c]
je 0x101170c5
test edi, edi
je 0x10116fa0
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x38], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [ebp - 0x48]
mov esi, dword [ecx + eax*4 + 4]
xor eax, eax
cmp esi, dword [ebp - 0x24]
je 0x10117040
mov ecx, esi
shr ecx, 4
mov edi, esi
shr edi, 9
xor edi, ecx
mov ecx, dword [ebp - 0x2c]
nop dword [eax + eax]
and edi, ecx
lea ecx, [edi + edi*2]
mov edx, dword [ebx + ecx*8]
cmp edx, esi
je 0x10117006
cmp edx, dword [ebp - 0x24]
je 0x10116ffc
add edi, eax
inc edi
inc eax
mov ecx, dword [ebp - 0x2c]
cmp eax, ecx
jbe 0x10116fe0
xor eax, eax
mov edx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x44]
jmp 0x10117040
cmp dword [ebx + ecx*8 + 8], 3
mov edx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x44]
jne 0x10117035
mov esi, dword [ebp - 0x28]
lea eax, [esi + 1]
movd xmm2, eax
por xmm2, xmm0
subsd xmm2, xmm1
cmpeqsd xmm2, qword [ebx + ecx*8 + 0x10]
movd eax, xmm2
and eax, 1
jmp 0x10117043
xor eax, eax
nop word [eax + eax]
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x38]
jmp 0x10116fa2
lea ecx, [ebx + 0x98]
lea eax, [ebp + 8]
push eax
call fcn.101106b0
mov esi, dword [eax]
mov edi, dword [eax + 4]
push edi
push 0x105354eb
push dword [ebx]
call fcn.10108fe0
add esp, 0xc
mov eax, dword [ebx]
xor ecx, ecx
nop word cs:[eax + eax]
mov edx, 1
shl edx, cl
inc ecx
cmp edx, edi
jb 0x10117080
test edi, edi
cmove ecx, edi
mov dword [ebp - 0x10], 0xffffffff
movzx edx, byte [ebp + 0xc]
movzx edi, cl
mov ecx, eax
push 0
push edi
push edx
push 0x35
call fcn.10108a70
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push esi
call fcn.10108b80
jmp 0x10117648
mov dword [ebp - 0x24], 0
jmp 0x101170e0
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x34]
lea eax, [esi + ecx]
xor edx, edx
mov ebx, dword [ebp - 0x50]
cmp ebx, eax
cmove edx, esi
mov dword [ebp - 0x24], edx
cmove ebx, ecx
xor ecx, ecx
movzx eax, byte [ebp + 0x10]
nop word cs:[eax + eax]
mov edx, 1
shl edx, cl
inc ecx
cmp edx, ebx
jb 0x101170f0
test ebx, ebx
mov edi, ebx
cmove ecx, ebx
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ecx + 0xdc]
movzx ecx, byte [ebp + 0xc]
test al, al
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x50], ebx
jne 0x10117147
lea eax, [ebx + 1]
cmp eax, 0x100
jae 0x101176cb
mov edx, dword [ebp - 0x20]
mov dword [edx + 0xdc], eax
mov ecx, dword [edx + 0xe0]
cmp ecx, eax
cmova eax, ecx
mov dword [edx + 0xe0], eax
mov ecx, ebx
mov eax, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x24]
or eax, ebx
movzx eax, cl
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x3d], cl
jne 0x101171df
mov eax, dword [ebp - 0x34]
dec eax
cmp eax, 0x1f
ja 0x101171df
cmp edi, dword [ebp - 0x34]
jne 0x101171df
mov dword [ebp - 0x5c], 0
xor ecx, ecx
nop word cs:[eax + eax]
cmp ecx, dword [esi + 0x1c]
mov dword [ebp - 0x10], 0
jae 0x1011725f
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x24], ecx
lea ecx, [ecx + ecx*2]
mov edx, dword [eax + ecx*4 + 4]
mov eax, dword [edx + 4]
cmp eax, dword [0x105dc2c8]
je 0x101171aa
xor edx, edx
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push dword [edx + 0x1c]
mov dword [ebp - 0x2c], edx
push dword [edx + 0x18]
call fcn.10108480
test eax, eax
js 0x1011769b
cwde
mov ecx, dword [ebp - 0x5c]
lea edx, [ecx + 1]
mov dword [ebp - 0x5c], edx
mov dword [ebp + ecx*4 - 0xdc], eax
mov ecx, dword [ebp - 0x24]
inc ecx
mov esi, dword [ebp - 0x3c]
jmp 0x10117180
mov edx, dword [esi + 0x1c]
xor eax, eax
test edx, edx
je 0x1011720d
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1011720d
dec edx
lea edx, [edx + edx*2]
cmp dword [ecx + edx*4], 0
jne 0x1011720d
mov eax, dword [ecx + edx*4 + 8]
mov ecx, dword [eax + 4]
xor eax, eax
cmp ecx, dword [0x105dc2d4]
sete al
neg eax
add ebx, dword [ebp - 0x30]
add ebx, eax
test edi, edi
mov dword [ebp - 0x24], ebx
je 0x10117242
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov dword [ebp - 0x10], 0
test ebx, ebx
je 0x101172b5
push ebx
push edi
push 0x105353c1
push eax
call fcn.10108fe0
add esp, 0x10
jmp 0x101172c4
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov dword [ebp - 0x10], 0
push ebx
push 0x105353a6
push eax
call fcn.10108fe0
add esp, 0xc
jmp 0x101172c4
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
lea eax, [ebp - 0xdc]
push eax
call fcn.10108550
mov dword [ebp - 0x24], eax
test eax, eax
mov eax, dword [ebp - 0x34]
js 0x101176ea
push eax
push 0x10535505
mov eax, dword [ebp - 0x20]
push dword [eax]
call fcn.10108fe0
add esp, 0xc
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
cmp edx, 0x7fff
ja 0x1011765e
movsx eax, dx
push eax
push dword [ebp - 0x28]
push 0x36
call fcn.10108b00
jmp 0x101172e7
push edi
push 0x105354eb
push eax
call fcn.10108fe0
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
movzx eax, byte [ebp - 0x38]
push 0
push eax
push dword [ebp - 0x28]
push 0x35
call fcn.10108a70
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push dword [ebp - 0x24]
call fcn.10108b80
mov eax, dword [ebp - 0x30]
cmp eax, 0x10
mov ecx, 0x10
cmovb ecx, eax
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0xdc]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ecx
add eax, ecx
cmp eax, 0x100
jae 0x101176af
mov dword [edx + 0xdc], eax
mov ecx, dword [edx + 0xe0]
cmp ecx, eax
cmova eax, ecx
mov dword [edx + 0xe0], eax
mov dword [ebp - 0x38], 1
xor edx, edx
mov dword [ebp - 0x44], 0
xor ecx, ecx
nop word [eax + eax]
mov eax, dword [ebp - 0x3c]
cmp ecx, dword [eax + 0x1c]
mov dword [ebp - 0x2c], edx
jae 0x101175d5
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x30], ecx
lea ecx, [ecx + ecx*2]
mov edx, dword [eax + ecx*4 + 4]
mov dword [ebp - 0x34], edx
mov eax, dword [eax + ecx*4 + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
cmp dword [eax + 8], 0
jle 0x10117388
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
inc eax
mov dword [ebp - 0x10], 0
push eax
call fcn.10108ed0
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0xc], 2
jl 0x101173b2
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov dword [ebp - 0x10], 0
sub esp, 0x10
movdqa xmm0, xmmword [0x104cbd80]
movdqu xmmword [esp], xmm0
call fcn.10108a70
mov edx, dword [ebp - 0x2c]
test edx, edx
je 0x101173fa
cmp dword [ebp - 0x34], 0
jne 0x101173c4
cmp edx, dword [ebp - 0x48]
jne 0x10117403
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov eax, edx
inc al
mov dword [ebp - 0x10], 0
movzx eax, al
movzx edx, byte [ebp - 0x4c]
push eax
push edx
push dword [ebp - 0x28]
push 0x37
call fcn.10108a70
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push dword [ebp - 0x38]
call fcn.10108b80
mov eax, dword [ebp - 0x2c]
add dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x34]
test edx, edx
jne 0x10117480
xor edx, edx
mov dword [ebp - 0x2c], edx
mov eax, edx
add al, byte [ebp - 0x4c]
mov edx, dword [ebp - 0x30]
inc edx
movzx eax, al
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x30], edx
cmp edx, dword [ecx + 0x1c]
jne 0x10117435
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x20]
push eax
push dword [ebp - 0x24]
call fcn.10118c10
mov dword [ebp - 0x44], eax
jmp 0x10117468
lea edx, [eax + 1]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ecx + 0xdc]
mov dword [ebp - 0x34], esi
mov dword [ecx + 0xdc], edx
mov dword [ebp - 0x10], 1
push 1
push eax
push dword [ebp - 0x24]
call fcn.10115a60
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0xdc], ecx
mov edx, dword [ebp - 0x2c]
inc edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
jmp 0x10117343
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x58], ecx
mov eax, dword [ecx + 0xdc]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x10], 2
lea eax, [ebp - 0x58]
push eax
push edx
push dword [ebp - 0x28]
lea eax, [ebp - 0xdc]
push eax
call fcn.101189b0
mov eax, dword [0x105dc2cc]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
test ecx, ecx
je 0x101174c0
mov ecx, dword [ebp - 0x24]
cmp edx, eax
je 0x101174ea
mov esi, dword [0x105dc2b8]
mov edi, dword [0x105dc2f4]
mov ecx, dword [ebp - 0x24]
nop
cmp edx, esi
je 0x101174dc
cmp edx, edi
jne 0x10117560
mov ecx, dword [ecx + 0x18]
mov edx, dword [ecx + 4]
test ecx, ecx
je 0x101174d0
cmp edx, eax
jne 0x101174d0
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0x3c], 0
je 0x10117560
mov eax, dword [ecx + 0x18]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + 0x40]
mov dword [ebp - 0x34], ecx
cmp eax, ecx
je 0x10117560
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0x34]
mov dword [ebp - 0x2c], edx
mov esi, dword [ecx + 0x38]
dec esi
mov ecx, eax
shr ecx, 4
mov edi, eax
shr edi, 9
xor edi, ecx
xor ebx, ebx
nop
and edi, esi
lea ecx, [edi + edi*2]
mov edx, dword [ebp - 0x2c]
mov edx, dword [edx + ecx*4]
cmp edx, eax
je 0x1011753e
cmp edx, dword [ebp - 0x34]
je 0x10117560
add edi, ebx
inc edi
inc ebx
cmp ebx, esi
jbe 0x10117520
jmp 0x10117560
mov eax, dword [ebp - 0x2c]
cmp byte [eax + ecx*4 + 5], 0
je 0x10117560
mov eax, dword [ebp - 0x2c]
movzx eax, byte [eax + ecx*4 + 4]
mov dword [ebp - 0x10], 2
jmp 0x101175a9
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ecx + 0xdc]
lea eax, [ebx + 1]
mov dword [ebp - 0x10], 2
cmp eax, 0x100
jae 0x10117680
mov dword [ecx + 0xdc], eax
mov edx, dword [ecx + 0xe0]
cmp edx, eax
cmova eax, edx
mov dword [ecx + 0xe0], eax
mov dword [ebp - 0x2c], ebx
movzx eax, bl
push 1
push eax
push dword [ebp - 0x24]
call fcn.10115a60
mov eax, dword [ebp - 0x2c]
movzx eax, al
mov ecx, dword [ebp - 0x20]
push 1
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.10118d70
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
mov dword [eax + 0xdc], ecx
mov ecx, dword [ebp - 0x30]
inc ecx
xor edx, edx
jmp 0x10117340
test edx, edx
je 0x10117616
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x2c]
inc dl
xor eax, eax
test byte [ebp - 0x44], 1
movzx edx, dl
cmovne edx, eax
mov dword [ebp - 0x10], 0
movzx eax, byte [ebp - 0x4c]
movzx edx, dl
push edx
push eax
push dword [ebp - 0x28]
push 0x37
call fcn.10108a70
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push dword [ebp - 0x38]
call fcn.10108b80
movzx eax, byte [ebp - 0x3d]
cmp al, byte [ebp + 0xc]
je 0x1011763c
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov dword [ebp - 0x10], 0
movzx eax, byte [ebp + 0xc]
push 0
push dword [ebp - 0x28]
push eax
push 6
call fcn.10108a70
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0xdc], eax
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0xd0
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
movzx eax, byte [ebp - 0x38]
push 0
push eax
push dword [ebp - 0x28]
push 0x35
call fcn.10108a70
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push 0
call fcn.10108b80
jmp 0x101172e7
mov eax, dword [ebp - 0x24]
add eax, 8
push 0xff
push 1
push 0x105353e4
push eax
call fcn.1010d850
add esp, 0x10
mov eax, dword [ebp - 0x2c]
add eax, 8
push 0x105349c4
push eax
call fcn.1010d850
add esp, 8
mov eax, dword [ebp - 0x3c]
add eax, 8
push 0xff
push dword [ebp - 0x48]
push 0x105353e4
push eax
call fcn.1010d850
add esp, 0x10
add esi, 8
mov dword [ebp - 0x10], 0
push 0xff
push 1
push 0x105353e4
push esi
call fcn.1010d850
add esp, 0x10
mov eax, dword [ebp - 0x3c]
add eax, 8
push 0x105349c4
push eax
call fcn.1010d850
add esp, 8
nop
push ebp
sub esp, 0x10
add ebp, 0xc
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0xdc], ecx
add esp, 0x10
pop ebp
ret