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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x130
mov esi, dword [ebp + 0x10]
cmp esi, 0xfffffff
ja 0x1011e682
mov eax, esi
mov esi, dword [ebp + 0xc]
test eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0xd8], esi
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
je 0x1011e69a
movzx eax, byte [esi]
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.10039980
add esp, 8
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x1011e6ba
cmp dword [ebp + 0x10], 1
mov eax, 3
mov ebx, 2
jne 0x1011e842
mov dword [esp + 0xc], 1
mov edi, 1
mov esi, dword [esp + 0xc]
mov edx, edi
mov ecx, edi
and edx, 0xffffff00
mov dword [esp + 0xc], esi
movzx esi, cl
or esi, edx
mov edx, esi
shr edx, 0x18
jmp 0x1011e704
mov eax, 0xa
xor edi, edi
xor ebx, ebx
mov ecx, esi
mov dword [esp + 0xc], 0
jmp 0x1011e737
mov dword [esp + 0x1c], 0
mov eax, 3
mov ebx, 1
xor edx, edx
xor esi, esi
mov dword [esp + 0xc], 1
jmp 0x1011e704
movzx ecx, byte [esp + 0x3a]
movzx esi, word [esp + 0x38]
mov dword [esp + 0xc], eax
movzx edx, byte [esp + 0x3b]
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
movdqu xmm1, xmmword [esp + 0x4c]
mov edi, dword [esp + 0x48]
shl ecx, 0x10
or esi, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x24], ecx
movzx ecx, dl
and esi, 0xffffff
mov edx, eax
shl ecx, 0x18
and edx, 0xff000000
or esi, ecx
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x1c]
and eax, 0xffffff
mov ecx, dword [esp + 0x10]
or eax, edx
mov edx, ebx
mov ebx, esi
mov esi, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x30]
movdqu xmmword [esp + 0x44], xmm1
mov dword [esp + 0x54], edx
cmp al, 8
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x5c], edi
jne 0x1011e7b0
mov eax, dword [esp + 0x41]
mov edx, dword [esp + 0x59]
mov ebx, dword [esp + 0x35]
mov edi, dword [esp + 0x39]
mov ecx, dword [esp + 0x3d]
mov esi, dword [esp + 0x45]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x49]
mov dword [esp + 0x28], edx
mov edx, 5
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x4d]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x51]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x55]
mov dword [esp + 0x18], eax
jmp 0x1011e7ed
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], edx
mov ebx, ecx
mov ecx, esi
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0xc]
pshufd xmm0, xmm1, 0x55
pshufd xmm2, xmm1, 0xee
movd dword [esp + 0x10], xmm1
pshufd xmm1, xmm1, 0xff
mov edi, eax
movd dword [esp + 0x14], xmm0
movd dword [esp + 0x20], xmm2
movd dword [esp + 0x18], xmm1
mov eax, dword [ebp + 8]
mov dword [eax], edx
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], esi
mov dword [eax + 0x18], edx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov dword [eax + 0x1c], esi
mov dword [eax + 0x20], edx
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
mov dword [eax + 0x24], esi
mov dword [eax + 0x28], edx
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
mov dword [eax + 0x2c], esi
mov dword [eax + 0x30], edx
mov byte [eax + 0x3c], 0x18
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movzx eax, byte [esp + 0x3a]
movzx ecx, word [esp + 0x38]
movzx edx, byte [esi + 1]
mov dword [esp + 0xe4], 2
shl eax, 0x10
or ecx, eax
test dl, dl
mov eax, ecx
js 0x1011e9f2
mov esi, edx
mov dword [esp + 0x10], 2
cmp al, 9
jne 0x1011eabd
mov edi, dword [esp + 0xe0]
xor ecx, ecx
mov eax, esi
sub edi, dword [esp + 0x10]
cmovb edi, ecx
xor edx, edx
mov ecx, 0xff
cmp edi, esi
setne dl
cmovbe ecx, edx
test cl, cl
je 0x1011e8b0
movzx ecx, cl
cmp ecx, 0xff
jne 0x1011eae0
lea ebx, [esp + 0xb4]
lea eax, [esp + 0xd8]
lea ecx, [esp + 0x34]
mov edx, ebx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], 0
call fcn.1011d5d0
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x1011eb26
movzx ecx, word [esp + 0x3c]
cmp cl, 9
jne 0x1011ebdf
mov esi, dword [esp + 0xb8]
xor eax, eax
mov edi, dword [esp + 0x38]
sub esi, dword [esp + 0xbc]
mov edx, edi
cmovb esi, eax
xor ecx, ecx
mov eax, 0xff
cmp esi, edi
mov dword [esp + 0x1c], esi
setne cl
cmovbe eax, ecx
test al, al
je 0x1011e93b
movzx eax, al
cmp eax, 0xff
jne 0x1011ec85
lea edi, [esp + 0x34]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], edx
lea edx, [esp + 0xc0]
mov dword [esp + 0xc8], 0
mov ecx, edi
call fcn.1011dc40
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x1011ece7
movzx eax, byte [esp + 0x3e]
mov esi, dword [esp + 0x38]
movzx ecx, word [esp + 0x3c]
shl eax, 0x10
or ecx, eax
push 5
push ecx
push edi
call fcn.10039890
add esp, 0xc
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x1011ed8e
pxor xmm0, xmm0
cmp esi, 0x27
mov dword [esp + 0x127], 0
movdqu xmmword [esp + 0x114], xmm0
movdqu xmmword [esp + 0x104], xmm0
mov dword [esp + 0x123], 0
jbe 0x1011ee5c
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
mov edi, 0x505
xor edx, edx
mov dword [esp + 0x2c], 0
xor eax, eax
jmp 0x1011f047
cmp dl, 0x80
je 0x1011ebca
cmp dl, 0x85
jae 0x1011ebca
mov ecx, edx
xor ecx, 0x80
mov dword [esp + 0x28], ecx
je 0x1011eba3
mov dword [esp + 0x14], eax
mov eax, 2
add esi, 2
xor ecx, ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0xc], 1
sub eax, dword [ebp + 0x10]
mov dword [esp + 0x24], eax
xor eax, eax
lea edx, [eax + 2]
cmp edx, dword [ebp + 0x10]
ja 0x1011ec1a
mov edi, dword [esp + 0x24]
lea ebx, [edi + eax]
lea edi, [eax + 3]
test ebx, ebx
je 0x1011ec3a
cmp eax, 0xffffffd
je 0x1011ec58
mov edx, ecx
lea ecx, [esi + eax]
inc eax
mov dword [esp + 0xe4], edi
shl edx, 8
test ebx, ebx
cmove ecx, ebx
movzx ecx, byte [ecx]
or ecx, edx
cmp dword [esp + 0x28], eax
jne 0x1011ea39
cmp ecx, 0x10000000
mov dword [esp + 0x10], eax
jae 0x1011ed82
mov esi, ecx
add dword [esp + 0x10], 2
mov edi, ecx
mov cl, 1
mov ch, 0x81
and esi, 0xffffff80
cmp esi, 0x80
jne 0x1011ee39
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
mov esi, edi
jmp 0x1011ebbe
and eax, 0xffffff
xor edx, edx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov ebx, eax
mov eax, 0x911
jmp 0x1011e722
mov eax, dword [esp + 0x10]
mov ecx, esi
add ecx, eax
jb 0x1011ec0c
cmp ecx, 0xfffffff
ja 0x1011ec0c
add edi, eax
jb 0x1011ec6f
cmp edi, 0x10000000
jae 0x1011ec6f
mov esi, edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], 1
mov eax, 3
jmp 0x1011f154
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
movzx edx, word [esp + 0x3c]
movzx ebx, word [esp + 0x44]
movzx edi, word [esp + 0x48]
mov esi, dword [esp + 0x5c]
movdqu xmm1, xmmword [esp + 0x4c]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x3e]
mov dword [esp + 0x14], ecx
movzx ecx, byte [esp + 0x47]
mov dword [esp + 0x28], esi
shl eax, 0x10
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x60]
or edx, eax
movzx eax, byte [esp + 0x46]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x64]
shl eax, 0x10
or ebx, eax
movzx eax, byte [esp + 0x4a]
mov dword [esp + 0x24], ecx
movzx ecx, byte [esp + 0x4b]
shl eax, 0x10
or edi, eax
mov eax, edx
movzx edx, byte [esp + 0x3f]
mov dword [esp + 0x18], ecx
jmp 0x1011f0f2
xor esi, esi
mov dword [esp + 0x10], 2
lea ecx, [esi - 0x1000000]
cmp ecx, 0xf000000
mov ch, 0x84
setb cl
test cl, cl
je 0x1011ebca
cmp ch, dl
je 0x1011e874
shl eax, 8
xor esi, esi
mov dword [esp + 0xc], 0
or eax, 5
jmp 0x1011e678
movzx eax, byte [esp + 0x3e]
mov esi, dword [esp + 0xbc]
mov dword [esp + 0x20], edx
shl eax, 0x10
or ecx, eax
mov eax, 0x911
and ecx, 0xffffff
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ecx
jmp 0x1011f113
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], ecx
jmp 0x1011ec7b
mov edi, dword [ebp + 0x10]
mov eax, 0xa
mov ecx, 3
cmp edi, 0xfffffff
lea ebx, [edi + 1]
cmovae ecx, eax
mov eax, ecx
jmp 0x1011e661
cmp edx, 0xffffffe
jbe 0x1011ed73
mov dword [esp + 0xc], 0
mov eax, 0xa
jmp 0x1011e661
mov dword [esp + 0xc], 0
mov eax, 0xa
mov edi, 0x10000000
jmp 0x1011e661
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 0
mov eax, 0xa
jmp 0x1011f154
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax + 0xc]
mov eax, 0xa
add edx, ecx
jb 0x1011ee28
cmp edx, 0xfffffff
ja 0x1011ee28
mov ebx, dword [esp + 0x1c]
add ebx, ecx
jb 0x1011ef03
cmp ebx, 0xfffffff
ja 0x1011ef03
mov eax, ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], ecx
shr eax, 0x18
mov dword [esp + 0x20], eax
mov eax, 3
jmp 0x1011f0ed
movzx ecx, byte [esp + 0x3e]
movzx edx, word [esp + 0x3c]
movzx ebx, word [esp + 0x44]
movzx esi, word [esp + 0x48]
movdqu xmm1, xmmword [esp + 0x4c]
mov dword [esp + 0x1c], eax
shl ecx, 0x10
or edx, ecx
movzx ecx, word [esp + 0x40]
mov dword [esp + 0x14], edx
movzx edx, byte [esp + 0x42]
shl edx, 0x10
or ecx, edx
movzx edx, byte [esp + 0x46]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x38]
shl edx, 0x10
or ebx, edx
movzx edx, byte [esp + 0x4a]
shl edx, 0x10
or esi, edx
mov edx, ecx
shr edx, 0x18
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x10], edx
movzx edx, byte [esp + 0x43]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x64]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x3f]
mov dword [esp + 0x24], esi
mov edi, edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x30], edx
jmp 0x1011ee11
mov ebx, edi
mov edi, dword [ebp + 0x10]
mov eax, 3
jmp 0x1011e661
xor esi, esi
mov eax, 0xa
jmp 0x1011e66f
mov dword [esp + 0x1c], eax
movzx eax, byte [esp + 0x3a]
movzx ecx, word [esp + 0x38]
movzx edx, byte [esp + 0x42]
movzx ebx, word [esp + 0x44]
movzx esi, word [esp + 0x48]
mov edi, dword [esp + 0x3c]
movdqu xmm1, xmmword [esp + 0x4c]
shl eax, 0x10
shl edx, 0x10
mov dword [esp + 0x14], edi
shr edi, 0x18
or ecx, eax
movzx eax, word [esp + 0x40]
or eax, edx
movzx edx, byte [esp + 0x46]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x43]
shl edx, 0x10
mov byte [esp + 0x78], al
movzx eax, byte [esp + 0x3b]
or ebx, edx
movzx edx, byte [esp + 0x4a]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x5c]
shl edx, 0x10
or esi, edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], eax
movzx eax, byte [esp + 0x47]
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 0x4b]
mov dword [esp + 0x18], eax
jmp 0x1011f062
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
jmp 0x1011ef0f
mov eax, dword [esp + 0x14]
lea esi, [edx - 0x100]
mov ch, 0x82
cmp esi, 0xff00
jae 0x1011ef1c
mov edx, dword [esp + 0x30]
mov esi, edi
jmp 0x1011ebbe
lea ecx, [esp + 0x34]
lea edx, [esp + 0xc0]
push esi
call fcn.1011d3c0
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x1011ef3b
mov ebx, dword [esp + 0xc0]
lea edi, [esp + 0x104]
lea ecx, [esp + 0x80]
mov edx, ebx
push esi
push edi
call fcn.1011e290
add esp, 8
mov eax, dword [esp + 0x80]
cmp eax, 2
mov dword [esp + 0x1c], eax
jne 0x1011ef99
push esi
push edi
lea eax, [esp + 0x3c]
push eax
call fcn.100212f0
add esp, 0xc
cmp byte [esp + 0x34], 0
je 0x1011f165
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 7
mov dword [esp + 0x24], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], 0
xor edi, edi
mov dword [esp + 0x10], 0
jmp 0x1011f062
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], edx
jmp 0x1011f0ed
add edx, 0xffff0000
mov ch, 0x83
mov esi, edi
cmp edx, 0xff0000
mov edx, dword [esp + 0x30]
jae 0x1011ebad
jmp 0x1011ebbe
movsd xmm1, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x50]
movq xmm0, qword [esp + 0x60]
mov dword [esp + 0x1c], eax
movsd qword [esp + 0xa4], xmm1
movsd xmm1, qword [esp + 0x48]
movsd qword [esp + 0x9c], xmm2
movq xmm2, qword [esp + 0x38]
movq qword [esp + 0xac], xmm0
movsd qword [esp + 0x94], xmm1
movsd xmm1, qword [esp + 0x40]
movq qword [esp + 0x84], xmm2
movsd qword [esp + 0x8c], xmm1
movzx edx, byte [esp + 0x8e]
movzx eax, word [esp + 0x8c]
movzx ebx, word [esp + 0x90]
movzx edi, word [esp + 0x94]
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
movdqu xmm1, xmmword [esp + 0x98]
shl edx, 0x10
or eax, edx
movzx edx, byte [esp + 0x92]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x8f]
shl edx, 0x10
or ebx, edx
movzx edx, byte [esp + 0x96]
mov byte [esp + 0x78], al
movzx eax, byte [esp + 0x93]
shl edx, 0x10
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 0x97]
or edi, edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x6c], edi
mov edi, esi
shr esi, 0x18
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0xac]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x30], esi
mov esi, ecx
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x2c]
mov ecx, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], edx
shr ecx, 0x18
mov dword [esp + 0x10], ecx
mov ecx, esi
mov eax, edi
movzx edx, byte [esp + 0x10]
mov edi, dword [esp + 0x14]
and ecx, 0xffffff
movzx esi, al
mov eax, dword [esp + 0x1c]
shl esi, 0x18
and edi, 0xffffff
shl edx, 0x18
or ecx, edx
or edi, esi
test eax, eax
movzx edx, byte [esp + 0x78]
cmove ecx, eax
add ecx, dword [esp + 0xc8]
mov byte [esp + 0xd7], dl
mov dword [esp + 0xd0], edi
setb al
cmp ecx, 0x10000000
mov esi, ecx
mov ecx, dword [esp + 0xc]
setb dl
not al
and dl, al
movzx eax, dl
mov word [esp + 0xd4], cx
shr ecx, 0x10
mov dword [esp + 0x10], eax
mov eax, edi
mov byte [esp + 0xd6], cl
mov ecx, dword [esp + 0xd4]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0xc], esi
mov dword [esp + 0x14], ecx
mov edx, eax
shr edx, 0x18
movzx edx, dl
and eax, 0xffffff
mov esi, dword [esp + 0xbc]
shl edx, 0x18
or eax, edx
cmp dword [esp + 0x10], 0
je 0x1011f113
mov ecx, dword [esp + 0xc]
jmp 0x1011f115
xor ecx, ecx
add esi, ecx
setb cl
cmp esi, 0x10000000
mov dword [esp + 0x10], esi
not cl
setb dl
and dl, cl
movzx ecx, dl
mov dword [esp + 0xc], ecx
movzx ecx, byte [esp + 0x20]
movzx edx, byte [esp + 0x18]
and ebx, 0xffffff
and edi, 0xffffff
shl ecx, 0x18
shl edx, 0x18
or ebx, ecx
or edi, edx
mov esi, ebx
mov ebx, dword [esp + 0x14]
mov edx, eax
and edx, 0xff000000
jmp 0x1011e722
movzx eax, byte [esp + 0x3f]
movdqu xmm0, xmmword [esp + 0x4d]
movzx edi, byte [esp + 0x43]
movzx esi, word [esp + 0x41]
mov dword [esp + 0x2c], eax
movzx eax, word [esp + 0x3d]
movdqa xmmword [esp + 0xf0], xmm0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x35]
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x40]
mov byte [esp + 0xc], al
movzx eax, byte [esp + 0x44]
mov byte [esp + 0x14], al
mov eax, dword [esp + 0xc8]
cmp dword [esp + 0xc4], eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x39]
mov dword [esp + 0x78], eax
movzx eax, byte [esp + 0x47]
mov dword [esp + 0x68], eax
movzx eax, word [esp + 0x45]
mov dword [esp + 0x1c], eax
movzx eax, byte [esp + 0x48]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x49]
mov dword [esp + 0x6c], eax
mov al, 0x17
mov dword [esp + 0x18], eax
jbe 0x1011f30b
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 8]
jbe 0x1011f30b
mov eax, dword [ebx]
cmp byte [eax + 0x10], 0
jne 0x1011f30b
mov ecx, dword [eax + 0xc]
cmp dword [eax + 4], ecx
jbe 0x1011f30b
mov eax, dword [eax]
movzx eax, byte [eax + ecx]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.10039980
add esp, 8
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x1011f610
lea ecx, [esp + 0x34]
lea edx, [esp + 0xc0]
call fcn.1011dc40
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x1011f713
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
lea ecx, [esp + 0x34]
lea edx, [esp + 0xc0]
mov dword [esp + 0x18], eax
push ebx
call fcn.1011d3c0
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x1011f792
mov edx, dword [esp + 0xc0]
lea ecx, [esp + 0x34]
mov dword [esp + 0x24], edx
push ebx
call fcn.1011d480
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x1011f792
push ebx
mov eax, dword [esp + 0x28]
push dword [eax]
lea eax, [esp + 0x88]
push eax
call fcn.10039730
add esp, 0xc
mov eax, dword [esp + 0x80]
cmp eax, 2
jne 0x1011f7ec
mov eax, dword [esp + 0x88]
cmp eax, 0x10000000
mov dword [esp + 0x24], eax
jae 0x1011f9da
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x84]
mov eax, ecx
mov edx, ebx
shr ecx, 0x18
shld eax, ebx, 8
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
shr ebx, 8
mov dword [esp + 0x74], ebx
jmp 0x1011f30f
mov dword [esp + 0x74], eax
mov ebx, dword [esp + 0x2c]
shld dword [esp + 0x30], eax, 0x18
mov ecx, dword [esp + 0x28]
shl eax, 0x18
and edx, 0xffffff
shl edi, 0x10
or edx, eax
mov dword [esp + 0x28], edx
mov dh, byte [esp + 0xc]
mov dl, byte [esp + 0x14]
shl ebx, 0x10
or ecx, ebx
mov ebx, esi
mov esi, dword [esp + 0x68]
or ebx, edi
mov byte [esp + 0xd3], dh
mov word [esp + 0xd4], bx
shr ebx, 0x10
mov byte [esp + 0xd6], bl
mov byte [esp + 0xd7], dl
mov word [esp + 0xd0], cx
shr ecx, 0x10
mov byte [esp + 0xd2], cl
mov ecx, dword [esp + 0x78]
shl esi, 0x10
add dword [esp + 0x1c], esi
cmp byte [esp + 0x18], 0x18
mov dword [esp + 0xcc], ecx
mov ebx, dword [esp + 0xd0]
jne 0x1011f3b9
mov eax, dword [esp + 0x6c]
movdqa xmm1, xmmword [esp + 0xf0]
mov esi, dword [esp + 0x78]
shr eax, 0x18
mov dword [esp + 0x18], eax
mov eax, ebx
mov ebx, dword [esp + 0x1c]
jmp 0x1011f0da
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
cmp edx, eax
mov dword [esp + 0xc], eax
jbe 0x1011f400
xor eax, eax
sub edx, dword [esp + 0xc]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0xbc]
cmovb edx, eax
mov dword [esp + 0x14], ecx
mov eax, edx
mov ebx, edx
shr eax, 0x18
mov dword [esp + 0x20], eax
mov eax, 0x13
jmp 0x1011f10d
mov eax, dword [esp + 0xd4]
lea ecx, [esp + 0x34]
lea edx, [esp + 0xb4]
mov esi, ecx
mov dword [esp + 0xec], eax
call fcn.1011d5d0
mov eax, dword [esp + 0x34]
cmp eax, 2
mov dword [esp + 0xc], eax
jne 0x1011f567
movzx eax, byte [esp + 0x3e]
mov edi, dword [esp + 0x38]
movzx ecx, word [esp + 0x3c]
shl eax, 0x10
or ecx, eax
push 2
push ecx
push esi
call fcn.10039890
add esp, 0xc
mov eax, dword [esp + 0x34]
cmp eax, 2
mov dword [esp + 0xc], eax
jne 0x1011f5b3
dec edi
cmp edi, 0xfffffff
mov eax, edi
mov dword [esp + 0x2c], edi
ja 0x1011f5ee
mov byte [esp + 0x80], 0
lea ecx, [esp + 0x34]
lea edx, [esp + 0xb4]
push 1
lea eax, [esp + 0x84]
push eax
call fcn.1011e290
add esp, 8
mov eax, dword [esp + 0x34]
cmp eax, 2
mov dword [esp + 0xc], eax
jne 0x1011f694
movzx eax, byte [esp + 0x80]
lea ecx, [esp + 0x34]
lea edx, [esp + 0xb4]
mov dword [esp + 0x68], eax
push dword [esp + 0x2c]
call fcn.1011d480
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, 2
mov dword [esp + 0xc], eax
jne 0x1011f8f7
push dword [esp + 0x2c]
push dword [esp + 0xb8]
lea eax, [esp + 0x88]
push eax
call fcn.10039730
add esp, 0xc
mov eax, dword [esp + 0x80]
cmp eax, 2
mov dword [esp + 0xc], eax
jne 0x1011f951
mov ecx, dword [esp + 0x88]
cmp ecx, 0x10000000
mov eax, ecx
mov dword [esp + 0x7c], ecx
jae 0x1011f9c0
xor edi, edi
cmp byte [esp + 0x68], 7
mov dword [esp + 0x70], 0x215
ja 0x1011f554
mov ecx, dword [esp + 0x84]
cmp byte [esp + 0x68], 0
je 0x1011f9fc
cmp dword [esp + 0x7c], 0
jne 0x1011f9fc
mov dword [esp + 0x2c], eax
xor ecx, ecx
mov dword [esp + 0xc], 0
jmp 0x1011f6db
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x38]
movdqu xmm1, xmmword [esp + 0x4c]
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x14], eax
mov eax, ecx
mov eax, edi
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x2c], edi
and ecx, 0xffffff00
shr edi, 8
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x70], eax
jmp 0x1011f6db
movzx eax, byte [esp + 0x38]
movzx edi, byte [esp + 0x3b]
mov ecx, dword [esp + 0x48]
movdqu xmm1, xmmword [esp + 0x4c]
mov dword [esp + 0x2c], eax
movzx eax, word [esp + 0x39]
shl edi, 0x10
mov dword [esp + 0x68], ecx
or edi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x70], eax
mov eax, ecx
and ecx, 0xffffff00
jmp 0x1011f6bf
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x68], eax
xor ecx, ecx
mov dword [esp + 0x70], 0xa
mov dword [esp + 0xc], 0
shr edi, 8
jmp 0x1011f6db
movzx ecx, byte [esp + 0x3a]
movzx edx, word [esp + 0x38]
movzx esi, word [esp + 0x48]
movzx ebx, byte [esp + 0x3f]
movdqu xmm1, xmmword [esp + 0x4c]
mov edi, dword [esp + 0x3b]
shl ecx, 0x10
or edx, ecx
movzx ecx, byte [esp + 0x46]
mov dword [esp + 0x24], edx
movzx edx, byte [esp + 0x4a]
shl ecx, 0x10
shl edx, 0x10
or esi, edx
mov dword [esp + 0x6c], esi
movzx esi, word [esp + 0x44]
mov edx, esi
mov edx, dword [esp + 0x40]
or ecx, esi
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x64]
shr ecx, 8
mov dword [esp + 0x10], edx
movzx edx, byte [esp + 0x47]
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], edx
movzx edx, byte [esp + 0x4b]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x30], edx
jmp 0x1011f89a
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
movdqu xmm1, xmmword [esp + 0x4c]
mov dword [esp + 0x70], eax
mov eax, ecx
mov dword [esp + 0x68], ecx
and ecx, 0xffffff00
mov eax, edi
mov dword [esp + 0x2c], edi
shr edi, 8
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 0x2c]
shl edi, 8
or eax, edi
movzx edi, byte [esp + 0x68]
mov dword [esp + 0x10], eax
or edi, ecx
mov eax, edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], edx
shr eax, 0x18
mov dword [esp + 0x18], eax
mov eax, ebx
shr eax, 0x18
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x70]
jmp 0x1011f132
movzx ecx, byte [esp + 0x46]
movzx esi, word [esp + 0x44]
mov edi, dword [esp + 0x3c]
movdqu xmm1, xmmword [esp + 0x4c]
shl ecx, 0x10
mov edx, esi
mov dword [esp + 0x1c], esi
movzx edx, word [esp + 0x48]
or ecx, esi
movzx esi, byte [esp + 0x4a]
shr ecx, 8
shl esi, 0x10
or edx, esi
mov esi, edi
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x40]
shr esi, 0x18
mov ebx, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x10], edx
movzx edx, byte [esp + 0x47]
shld edi, esi, 8
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x64]
mov dword [esp + 0x20], edx
movzx edx, byte [esp + 0x4b]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x30], edx
jmp 0x1011f88f
movq xmm0, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x50]
movq qword [esp + 0xac], xmm0
movsd qword [esp + 0xa4], xmm1
movsd xmm1, qword [esp + 0x48]
movsd qword [esp + 0x9c], xmm2
movq xmm2, qword [esp + 0x38]
movsd qword [esp + 0x94], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [esp + 0x8c], xmm1
movq qword [esp + 0x84], xmm2
movzx edx, byte [esp + 0x96]
movzx edi, word [esp + 0x94]
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0xac]
mov esi, dword [esp + 0x88]
movdqu xmm1, xmmword [esp + 0x98]
shl edx, 0x10
mov dword [esp + 0x24], ecx
movzx ecx, byte [esp + 0x92]
mov dword [esp + 0x30], ebx
or edi, edx
mov dword [esp + 0x6c], edi
movzx edi, word [esp + 0x90]
shl ecx, 0x10
mov edx, edi
mov edx, dword [esp + 0x8c]
or ecx, edi
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0xa8]
shr ecx, 8
mov dword [esp + 0x10], edx
movzx edx, byte [esp + 0x93]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x20], edx
movzx edx, byte [esp + 0x97]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0x24]
mov ebx, esi
shr ebx, 0x18
shrd edi, esi, 0x18
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x24]
mov esi, edi
shl ecx, 8
shl esi, 0x18
and edx, 0xffffff
or edx, esi
movzx esi, byte [esp + 0x1c]
or esi, ecx
test eax, eax
cmove edx, eax
add edx, dword [esp + 0x74]
setb al
cmp edx, 0x10000000
setb cl
shld ebx, edi, 0x18
not al
mov edi, dword [esp + 0x10]
and cl, al
mov eax, ebx
mov ebx, esi
mov esi, edx
mov edx, dword [esp + 0x14]
movzx ecx, cl
mov dword [esp + 0x10], ecx
mov dword [esp + 0xd4], edi
mov dword [esp + 0x24], edx
jmp 0x1011f0da
movsd xmm1, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x50]
movq xmm0, qword [esp + 0x60]
movsd qword [esp + 0xa4], xmm1
movsd xmm1, qword [esp + 0x48]
movsd qword [esp + 0x9c], xmm2
movq xmm2, qword [esp + 0x38]
movq qword [esp + 0xac], xmm0
movsd qword [esp + 0x94], xmm1
movsd xmm1, qword [esp + 0x40]
movq qword [esp + 0x84], xmm2
movsd qword [esp + 0x8c], xmm1
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x90]
movdqu xmm1, xmmword [esp + 0x98]
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x7c]
and ecx, 0xffffff00
shr edi, 8
jmp 0x1011f6d7
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x70], 0xa
mov dword [esp + 0xc], 0
mov dword [esp + 0x2c], ecx
jmp 0x1011f9a6
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
mov esi, 0xa
xor ecx, ecx
mov dword [esp + 0x10], eax
xor eax, eax
jmp 0x1011f882
mov edx, dword [esp + 0x7c]
movzx eax, byte [esp + 0x68]
lea edx, [edx*8]
sub edx, eax
mov dword [esp + 0x14], edx
jae 0x1011fa2f
mov dword [esp + 0x2c], eax
mov dword [esp + 0x70], 0xa
xor ecx, ecx
mov dword [esp + 0xc], 0
jmp 0x1011f6db
cmp byte [esp + 0x68], 0
je 0x1011fa4b
mov dword [esp + 0xc], 0
mov dword [esp + 0x70], 0x215
jmp 0x1011f6f0
mov esi, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
cmp esi, edx
jbe 0x1011fa7e
mov edi, edx
xor edx, edx
mov dword [esp + 0xc], 1
mov eax, 0x13
sub esi, edi
mov ebx, edi
cmovb esi, edx
mov dword [esp + 0x10], ebx
jmp 0x1011e722
mov eax, dword [esp + 0xe4]
cmp byte [esp + 0xe8], 0
mov edx, 1
mov dword [esp + 0xc], 1
jne 0x1011fab7
mov edi, dword [esp + 0xe0]
cmp edi, eax
jbe 0x1011fac6
xor ecx, ecx
sub edi, eax
mov edx, 0x13
cmovb edi, ecx
mov dword [esp + 0x1c], edi
mov ebx, dword [esp + 0x1c]
mov ecx, eax
mov eax, edx
mov esi, ecx
jmp 0x1011e737
movzx eax, byte [esp + 0x20]
mov edx, dword [esp + 0x1c]
movdqa xmm0, xmmword [esp + 0xf0]
shl eax, 0x18
and edx, 0xffffff
or edx, eax
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0xec]
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x6c]
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x28]
movdqu xmmword [eax + 0x20], xmm0
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 0x34], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x38], ecx
mov ecx, dword [esp + 0x18]
mov byte [eax + 0x3c], cl
mov ecx, dword [esp + 0x74]
mov word [eax + 0x3d], cx
jmp 0x1011e83a