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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x68
mov edi, edx
mov dl, byte [esp + 0x7c]
xor ebx, ebx
mov dword [esp], ecx
inc ebx
mov eax, ebx
mov ecx, edx
shl eax, cl
cmp edi, eax
cmova eax, edi
cmp eax, 0x801
jb 0x1000126a
mov eax, dword [esp]
mov dword [esp + 0xc], edi
cmp dword [eax + 0xa0], 0
je 0x10001275
mov eax, dword [esp]
and dl, 0x1f
movzx esi, dl
mov edx, edi
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push dword [esp + 0x80]
push esi
call dword [eax]
add esp, 8
test eax, eax
je 0x10001490
mov ecx, eax
mov esi, eax
call fcn.10001dd2
mov ebp, dword [esp]
mov dword [esp + 4], esi
mov ebp, dword [ebp + 0x98]
test ebp, ebp
je 0x10001366
mov esi, dword [ebp - 4]
shr edx, 0x19
mov dword [esp + 8], edx
lea ecx, [esi - 1]
mov edx, ecx
and eax, ecx
jmp 0x10001372
dec eax
je 0x1000128e
bsr eax, eax
xor eax, 0x1f
jmp 0x10001291
mov eax, dword [esp]
mov eax, dword [eax + 0x98]
test eax, eax
je 0x1000141b
mov eax, dword [eax - 4]
jmp 0x1000141d
push 0x20
pop eax
mov cl, 0x20
mov esi, ebx
mov edx, dword [esp]
sub cl, al
xor eax, eax
shl esi, cl
test cl, 0x20
cmovne esi, eax
bsf eax, esi
mov edi, dword [edx + eax*4 + 0x68]
mov dword [esp + 8], eax
test edi, edi
je 0x100012d1
mov ax, 0x1000
xor edx, edx
div si
movzx ecx, word [edi + 4]
mov edx, ecx
and edx, 0x1fff
cmp ax, dx
jne 0x100016cb
xor eax, eax
test al, al
jne 0x10001490
mov eax, dword [esp]
mov edi, dword [esp + 0x78]
mov edx, 0x1000
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push edi
push 0xc
call dword [eax]
add esp, 8
test eax, eax
je 0x10001490
mov dword [esp + 4], eax
mov ax, 0x1000
xor edx, edx
mov dword [esp + 0x10], edi
div si
movzx edi, ax
shr edi, 3
lea eax, [edi + 0xb]
and eax, 0x7fc
cmp esi, 0x201
push 0xc
pop ebp
mov edx, dword [esp]
cmovb ebp, eax
lea ecx, [esp + 0x3c]
push ebp
call fcn.10001d76
pop eax
lea eax, [esp + 0x3c]
cmp word [eax + 8], 0
je 0x10001638
mov eax, dword [esp]
mov edx, dword [esp + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push dword [esp + 0x10]
push 0xc
push 0x1000
call dword [eax + 8]
add esp, 0xc
jmp 0x10001490
shr edx, 0x19
mov dword [esp + 8], edx
xor edx, edx
xor esi, esi
dec edx
mov edi, dword [esp + 4]
mov ebx, esi
mov cl, byte [ebp + eax]
sub ebx, 1
setb ch
test cl, cl
je 0x100013b3
test ch, ch
jne 0x100013b3
test cl, cl
jns 0x100013a3
mov ch, cl
and ch, 0x7f
cmp byte [esp + 8], ch
jne 0x100013a3
mov ecx, dword [ebp - 8]
cmp dword [ecx + eax*4], edi
jne 0x100013ae
jmp 0x100013f2
cmp esi, dword [ebp - 4]
jne 0x100013ae
cmp cl, 1
cmove esi, eax
inc eax
and eax, edx
jmp 0x10001378
cmp esi, dword [ebp - 4]
mov ecx, dword [esp + 8]
mov edi, dword [esp]
cmovb eax, esi
or cl, 0x80
dec dword [edi + 0xa0]
mov byte [ebp + eax], cl
lea edx, [eax*4]
shl eax, 3
mov ecx, dword [edi + 0x98]
add edx, dword [ecx - 8]
add eax, dword [ecx - 0xc]
inc dword [edi + 0x9c]
lea ecx, [esp + 0x50]
mov byte [ecx], 0
jmp 0x10001402
lea edx, [ecx + eax*4]
shl eax, 3
lea ecx, [esp + 0x50]
add eax, dword [ebp - 0xc]
mov byte [ecx], 1
test byte [ecx], 1
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 4]
jne 0x10001411
mov dword [edx], ebx
mov dword [eax], ebx
mov dword [eax + 4], ecx
jmp 0x10001704
xor eax, eax
push 0x50
pop ebp
mul ebp
push 0x64
pop esi
push 0
push esi
push edx
push eax
call fcn.1000203c
inc eax
mul esi
push 0
push 0x50
push edx
push eax
call fcn.1000203c
test eax, eax
je 0x10001449
bsr eax, eax
xor eax, 0x1f
jmp 0x1000144c
push 0x20
pop eax
mov cl, 0x20
sub cl, al
xor eax, eax
shl ebx, cl
test cl, 0x20
cmovne ebx, eax
cmp ebx, 9
push 8
pop edi
mov ecx, dword [esp]
cmovae edi, ebx
lea edx, [esp + 0x3c]
lea esi, [esp + 0x50]
lea ebx, [edi + edi*4 + 0xf]
lea eax, [ebx + edi*8]
and eax, 0xfffffffc
movsd xmm0, qword [ecx]
mov ecx, esi
movsd qword [edx], xmm0
push eax
call fcn.10001d76
pop eax
cmp word [esi + 8], 0
je 0x10001497
xor ebx, ebx
jmp 0x10001704
mov ecx, dword [esp + 0x50]
lea eax, [edi + 0xf]
and ebx, 0xfffffffc
and eax, 0xfffffffc
add ebx, ecx
lea esi, [ecx + 0xc]
add eax, ecx
mov dword [esp + 4], ecx
mov dword [ecx], ebx
mov dword [ecx + 4], eax
mov dword [ecx + 8], edi
push edi
push 0
push esi
call fcn.100020a4
add esp, 0xc
mov eax, edi
mul ebp
push 0
push 0x64
push edx
push eax
call fcn.1000203c
mov edx, dword [esp]
xor ecx, ecx
cmp dword [edx + 0x9c], ecx
mov ebx, dword [edx + 0x98]
je 0x1000170e
mov edi, dword [esp + 0xc]
mov dl, byte [esp + 0x7c]
xor ecx, ecx
test ebx, ebx
mov dword [esp + 0x1c], 0
je 0x10001506
mov ebp, dword [ebx - 4]
mov dword [esp + 0x1c], ebp
mov ebp, dword [ebx - 0xc]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], ebp
mov ebp, dword [ebx - 8]
mov dword [esp + 0x20], ebp
xor ebp, ebp
cmp ebp, dword [esp + 0x1c]
je 0x1000162a
cmp byte [ebx + ebp], 0
jns 0x10001624
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
mov edi, ecx
mov ebx, dword [eax + ebp*4]
mov eax, dword [esp + 0x24]
mov edx, dword [eax + ebp*8]
mov eax, dword [eax + ebp*8 + 4]
mov ecx, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], eax
call fcn.10001dd2
test edi, edi
mov dword [esp + 0x34], edi
je 0x100015bd
mov ecx, dword [esp + 4]
mov dword [esp + 0x28], ebp
mov ebx, dword [ecx + 8]
mov ecx, edx
shr ecx, 0x19
mov dword [esp + 8], ecx
lea edx, [ebx - 1]
and eax, edx
mov ebp, eax
mov cl, byte [esi + ebp]
sub ebx, 1
setb ch
test cl, cl
je 0x100015b3
test ch, ch
jne 0x100015b3
test cl, cl
jns 0x100015ae
and cl, 0x7f
cmp byte [esp + 8], cl
jne 0x100015ae
mov ecx, dword [esp + 4]
mov edi, esi
mov esi, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
cmp dword [ecx + ebp*4], esi
mov esi, edi
je 0x100015b3
inc ebp
and ebp, edx
jmp 0x1000157c
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x28]
jmp 0x100015d7
mov ecx, dword [esp + 4]
shr edx, 0x19
mov ebx, dword [esp + 0x18]
mov dword [esp + 8], edx
mov edx, dword [ecx + 8]
dec edx
and eax, edx
jmp 0x100015d7
inc eax
and eax, edx
cmp byte [esi + eax], 0
js 0x100015d4
mov ecx, dword [esp + 8]
mov edi, dword [esp + 4]
mov edx, dword [esp + 0x10]
or cl, 0x80
mov byte [edi + eax + 0xc], cl
mov ecx, dword [edi + 4]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x2c]
mov ecx, dword [edi]
mov edi, dword [esp + 0xc]
mov dword [ecx + eax*8 + 4], edx
mov edx, dword [esp + 0x30]
mov dword [ecx + eax*8], edx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov edx, dword [esp]
inc ecx
dec eax
cmp ecx, dword [edx + 0x9c]
mov dl, byte [esp + 0x7c]
je 0x1000162a
inc ebp
jmp 0x1000151a
mov ebx, dword [esp]
mov ebx, dword [ebx + 0x98]
jmp 0x10001716
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 4]
and word [esp + 0x48], 0
and word [esp + 0x16], 0
cmp esi, 0x201
cmovae edi, ebx
mov dword [ebp], ecx
lea eax, [ebp + 8]
movzx ecx, word [esp + 0x48]
mov word [ebp + 4], cx
movzx ecx, word [esp + 0x16]
mov word [ebp + 6], cx
push edi
push 0
push eax
call fcn.100020a4
add esp, 0xc
mov edi, dword [esp]
mov ebx, dword [edi + 0xb4]
test ebx, ebx
je 0x10001766
mov eax, dword [ebx]
mov ecx, ebp
mov dword [edi + 0xb4], eax
mov ebp, dword [esp + 8]
mov eax, ecx
mov dword [ebx], ecx
lea edx, [edi + ebp*8 + 8]
lea edi, [esp + 0x50]
mov ecx, edi
push eax
call fcn.10001a0f
pop eax
mov ecx, edi
mov edx, ebx
call fcn.10001a4d
mov edi, dword [ebx]
mov eax, dword [esp]
mov dword [eax + ebp*4 + 0x68], edi
movzx ecx, word [edi + 4]
mov edx, ecx
and edx, 0x1fff
movzx ebp, dx
lea edx, [ecx + 1]
mov eax, 0x1fff
mov bl, 1
and edx, eax
mov word [edi + 4], dx
mov edx, ecx
and cl, 7
shl bl, cl
and edx, 0x1ff8
shr edx, 3
or byte [edi + edx + 8], bl
mov ebx, ebp
movzx ecx, word [edi + 6]
imul ebx, esi
inc ecx
and ecx, eax
mov word [edi + 6], cx
add ebx, dword [edi]
mov eax, ebx
add esp, 0x68
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [esp + 0xc]
mov dl, byte [esp + 0x7c]
mov ebp, dword [esp]
test ebx, ebx
mov dword [ebp + 0x98], esi
mov dword [ebp + 0x9c], ecx
mov dword [ebp + 0xa0], eax
je 0x10001211
mov ecx, dword [esp]
imul eax, dword [ebx - 4], 0xd
add ebx, 0xfffffff4
mov edx, ebx
movsd xmm0, qword [ecx]
add eax, 0xf
lea ecx, [esp + 0x50]
and eax, 0xfffffffc
movsd qword [ecx], xmm0
push eax
call fcn.10001cfe
mov dl, byte [esp + 0x80]
add esp, 4
jmp 0x10001211
lea ebx, [esp + 0x3c]
lea eax, [edi + 0xa4]
lea edx, [esp + 0x48]
mov dword [edx], eax
mov dword [edx + 4], 0x100030d0
mov ecx, ebx
push 0x14
call fcn.10001d76
pop eax
cmp word [ebx + 8], 0
je 0x1000179e
mov ecx, edi
mov edx, ebp
push esi
call fcn.10001bda
pop eax
jmp 0x10001490
mov ebx, dword [esp + 0x3c]
mov ecx, ebp
jmp 0x10001694