Function at 0x10135cc0
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 0x10135d72
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 0x10135d8a
movzx eax, byte [esi]
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.10038bb0
add esp, 8
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x10135daa
cmp dword [ebp + 0x10], 1
mov eax, 3
mov ebx, 2
jne 0x10135f32
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 0x10135df4
mov eax, 0xa
xor edi, edi
xor ebx, ebx
mov ecx, esi
mov dword [esp + 0xc], 0
jmp 0x10135e27
mov dword [esp + 0x1c], 0
mov eax, 3
mov ebx, 1
xor edx, edx
xor esi, esi
mov dword [esp + 0xc], 1
jmp 0x10135df4
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 0x10135ea0
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 0x10135edd
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 0x101360e2
mov esi, edx
mov dword [esp + 0x10], 2
cmp al, 9
jne 0x101361ad
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 0x10135fa0
movzx ecx, cl
cmp ecx, 0xff
jne 0x101361d0
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.10134cc0
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x10136216
movzx ecx, word [esp + 0x3c]
cmp cl, 9
jne 0x101362cf
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 0x1013602b
movzx eax, al
cmp eax, 0xff
jne 0x10136375
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.10135330
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x101363d7
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.10038ac0
add esp, 0xc
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x1013647e
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 0x1013654c
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 0x10136737
cmp dl, 0x80
je 0x101362ba
cmp dl, 0x85
jae 0x101362ba
mov ecx, edx
xor ecx, 0x80
mov dword [esp + 0x28], ecx
je 0x10136293
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 0x1013630a
mov edi, dword [esp + 0x24]
lea ebx, [edi + eax]
lea edi, [eax + 3]
test ebx, ebx
je 0x1013632a
cmp eax, 0xffffffd
je 0x10136348
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 0x10136129
cmp ecx, 0x10000000
mov dword [esp + 0x10], eax
jae 0x10136472
mov esi, ecx
add dword [esp + 0x10], 2
mov edi, ecx
mov cl, 1
mov ch, 0x81
and esi, 0xffffff80
cmp esi, 0x80
jne 0x10136529
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
mov esi, edi
jmp 0x101362ae
and eax, 0xffffff
xor edx, edx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov ebx, eax
mov eax, 0x911
jmp 0x10135e12
mov eax, dword [esp + 0x10]
mov ecx, esi
add ecx, eax
jb 0x101362fc
cmp ecx, 0xfffffff
ja 0x101362fc
add edi, eax
jb 0x1013635f
cmp edi, 0x10000000
jae 0x1013635f
mov esi, edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], 1
mov eax, 3
jmp 0x10136844
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 0x101367e2
xor esi, esi
mov dword [esp + 0x10], 2
lea ecx, [esi - 0x1000000]
cmp ecx, 0xf000000
mov ch, 0x84
setb cl
test cl, cl
je 0x101362ba
cmp ch, dl
je 0x10135f64
shl eax, 8
xor esi, esi
mov dword [esp + 0xc], 0
or eax, 5
jmp 0x10135d68
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 0x10136803
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], ecx
jmp 0x1013636b
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 0x10135d51
cmp edx, 0xffffffe
jbe 0x10136463
mov dword [esp + 0xc], 0
mov eax, 0xa
jmp 0x10135d51
mov dword [esp + 0xc], 0
mov eax, 0xa
mov edi, 0x10000000
jmp 0x10135d51
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 0
mov eax, 0xa
jmp 0x10136844
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax + 0xc]
mov eax, 0xa
add edx, ecx
jb 0x10136518
cmp edx, 0xfffffff
ja 0x10136518
mov ebx, dword [esp + 0x1c]
add ebx, ecx
jb 0x101365f3
cmp ebx, 0xfffffff
ja 0x101365f3
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 0x101367dd
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 0x10136501
mov ebx, edi
mov edi, dword [ebp + 0x10]
mov eax, 3
jmp 0x10135d51
xor esi, esi
mov eax, 0xa
jmp 0x10135d5f
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 0x10136752
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
jmp 0x101365ff
mov eax, dword [esp + 0x14]
lea esi, [edx - 0x100]
mov ch, 0x82
cmp esi, 0xff00
jae 0x1013660c
mov edx, dword [esp + 0x30]
mov esi, edi
jmp 0x101362ae
lea ecx, [esp + 0x34]
lea edx, [esp + 0xc0]
push esi
call fcn.10134ab0
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x1013662b
mov ebx, dword [esp + 0xc0]
lea edi, [esp + 0x104]
lea ecx, [esp + 0x80]
mov edx, ebx
push esi
push edi
call fcn.10135980
add esp, 8
mov eax, dword [esp + 0x80]
cmp eax, 2
mov dword [esp + 0x1c], eax
jne 0x10136689
push esi
push edi
lea eax, [esp + 0x3c]
push eax
call fcn.10021d80
add esp, 0xc
cmp byte [esp + 0x34], 0
je 0x10136855
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 0x10136752
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], edx
jmp 0x101367dd
add edx, 0xffff0000
mov ch, 0x83
mov esi, edi
cmp edx, 0xff0000
mov edx, dword [esp + 0x30]
jae 0x1013629d
jmp 0x101362ae
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 0x10136803
mov ecx, dword [esp + 0xc]
jmp 0x10136805
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 0x10135e12
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 0x101369fb
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 8]
jbe 0x101369fb
mov eax, dword [ebx]
cmp byte [eax + 0x10], 0
jne 0x101369fb
mov ecx, dword [eax + 0xc]
cmp dword [eax + 4], ecx
jbe 0x101369fb
mov eax, dword [eax]
movzx eax, byte [eax + ecx]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.10038bb0
add esp, 8
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x10136d00
lea ecx, [esp + 0x34]
lea edx, [esp + 0xc0]
call fcn.10135330
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x10136e03
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.10134ab0
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x10136e82
mov edx, dword [esp + 0xc0]
lea ecx, [esp + 0x34]
mov dword [esp + 0x24], edx
push ebx
call fcn.10134b70
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x10136e82
push ebx
mov eax, dword [esp + 0x28]
push dword [eax]
lea eax, [esp + 0x88]
push eax
call fcn.10038960
add esp, 0xc
mov eax, dword [esp + 0x80]
cmp eax, 2
jne 0x10136edc
mov eax, dword [esp + 0x88]
cmp eax, 0x10000000
mov dword [esp + 0x24], eax
jae 0x101370ca
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 0x101369ff
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 0x10136aa9
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 0x101367ca
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
cmp edx, eax
mov dword [esp + 0xc], eax
jbe 0x10136af0
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 0x101367fd
mov eax, dword [esp + 0xd4]
lea ecx, [esp + 0x34]
lea edx, [esp + 0xb4]
mov esi, ecx
mov dword [esp + 0xec], eax
call fcn.10134cc0
mov eax, dword [esp + 0x34]
cmp eax, 2
mov dword [esp + 0xc], eax
jne 0x10136c57
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.10038ac0
add esp, 0xc
mov eax, dword [esp + 0x34]
cmp eax, 2
mov dword [esp + 0xc], eax
jne 0x10136ca3
dec edi
cmp edi, 0xfffffff
mov eax, edi
mov dword [esp + 0x2c], edi
ja 0x10136cde
mov byte [esp + 0x80], 0
lea ecx, [esp + 0x34]
lea edx, [esp + 0xb4]
push 1
lea eax, [esp + 0x84]
push eax
call fcn.10135980
add esp, 8
mov eax, dword [esp + 0x34]
cmp eax, 2
mov dword [esp + 0xc], eax
jne 0x10136d84
movzx eax, byte [esp + 0x80]
lea ecx, [esp + 0x34]
lea edx, [esp + 0xb4]
mov dword [esp + 0x68], eax
push dword [esp + 0x2c]
call fcn.10134b70
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, 2
mov dword [esp + 0xc], eax
jne 0x10136fe7
push dword [esp + 0x2c]
push dword [esp + 0xb8]
lea eax, [esp + 0x88]
push eax
call fcn.10038960
add esp, 0xc
mov eax, dword [esp + 0x80]
cmp eax, 2
mov dword [esp + 0xc], eax
jne 0x10137041
mov ecx, dword [esp + 0x88]
cmp ecx, 0x10000000
mov eax, ecx
mov dword [esp + 0x7c], ecx
jae 0x101370b0
xor edi, edi
cmp byte [esp + 0x68], 7
mov dword [esp + 0x70], 0x215
ja 0x10136c44
mov ecx, dword [esp + 0x84]
cmp byte [esp + 0x68], 0
je 0x101370ec
cmp dword [esp + 0x7c], 0
jne 0x101370ec
mov dword [esp + 0x2c], eax
xor ecx, ecx
mov dword [esp + 0xc], 0
jmp 0x10136dcb
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 0x10136dcb
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 0x10136daf
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 0x10136dcb
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 0x10136f8a
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 0x10136822
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 0x10136f7f
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 0x101367ca
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 0x10136dc7
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x70], 0xa
mov dword [esp + 0xc], 0
mov dword [esp + 0x2c], ecx
jmp 0x10137096
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 0x10136f72
mov edx, dword [esp + 0x7c]
movzx eax, byte [esp + 0x68]
lea edx, [edx*8]
sub edx, eax
mov dword [esp + 0x14], edx
jae 0x1013711f
mov dword [esp + 0x2c], eax
mov dword [esp + 0x70], 0xa
xor ecx, ecx
mov dword [esp + 0xc], 0
jmp 0x10136dcb
cmp byte [esp + 0x68], 0
je 0x1013713b
mov dword [esp + 0xc], 0
mov dword [esp + 0x70], 0x215
jmp 0x10136de0
mov esi, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
cmp esi, edx
jbe 0x1013716e
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 0x10135e12
mov eax, dword [esp + 0xe4]
cmp byte [esp + 0xe8], 0
mov edx, 1
mov dword [esp + 0xc], 1
jne 0x101371a7
mov edi, dword [esp + 0xe0]
cmp edi, eax
jbe 0x101371b6
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 0x10135e27
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 0x10135f2a