Function at 0x533f20
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x138
mov eax, dword [0x5e1040]
xor eax, esp
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x148]
push ebx
cmp dword [eax + 0x7610], 1
push ebp
push esi
push edi
mov edi, dword [esp + 0x15c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x84], ecx
jne 0x533f74
mov ebp, dword [eax + 0x7608]
mov dword [esp + 0x2c], ebp
jmp 0x533f90
mov eax, dword [esp + 0x154]
test eax, eax
jle 0x533f88
lea ebp, [ecx + eax]
mov dword [esp + 0x2c], ebp
jmp 0x533f8c
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x4c]
mov ebp, dword [eax + 0x760c]
mov ebx, ecx
mov ecx, dword [eax + 0x7578]
mov eax, dword [eax + 0x74b0]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], ecx
mov esi, dword [eax + 0x74b4]
mov eax, dword [eax + 0x74b8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x54], esi
mov esi, edi
mov dword [esp + 0x48], ebp
test eax, eax
je 0x535f10
mov ebx, dword [esp + 0x4c]
mov ecx, 8
cmp eax, ecx
mov ebp, ecx
cmovl ebp, eax
mov dword [ebx + 0x750c], 1
mov eax, dword [ebx + 0x682c]
mov dword [esp + 0xd8], eax
mov eax, dword [ebx + 0x6830]
mov dword [esp + 0xdc], eax
mov eax, dword [ebx + 0x6834]
mov dword [esp + 0x5c], ebp
mov dword [esp + 0xe0], eax
cmp esi, 1
jb 0x534076
mov dword [esp + 0xb8], edx
lea ebx, [edx + 4]
mov dword [esp + 0xbc], ebx
cmp esi, 4
jb 0x534080
lea eax, [edx - 4]
add eax, edi
mov dword [esp + 0xb4], eax
mov eax, dword [eax]
mov dword [esp + 0xac], eax
mov al, byte [edi + edx - 1]
test al, al
je 0x534076
movzx eax, al
bsr eax, eax
sub ecx, eax
mov dword [esp + 0xb0], ecx
cmp esi, 0xffffff88
jbe 0x5340fa
mov ebp, 0xffffffec
jmp 0x535f74
movzx ecx, byte [edx]
lea eax, [esi - 2]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xac], ecx
cmp eax, 5
ja case.default.0x534099
jmp dword [eax*4 + 0x535f90]
movzx eax, byte [edx + 6]
shl eax, 0x10
add ecx, eax
movzx eax, byte [edx + 5]
shl eax, 8
add ecx, eax
movzx eax, byte [ebx]
add ecx, eax
movzx eax, byte [edx + 3]
shl eax, 0x18
add ecx, eax
movzx eax, byte [edx + 2]
shl eax, 0x10
add ecx, eax
movzx eax, byte [edx + 1]
shl eax, 8
add ecx, eax
mov dword [esp + 0xac], ecx
mov al, byte [edi + edx - 1]
test al, al
je 0x534076
movzx eax, al
bsr ecx, eax
mov eax, 5
sub eax, esi
shl eax, 3
sub eax, ecx
mov dword [esp + 0xb0], eax
mov ebx, dword [esp + 0x4c]
lea eax, [esp + 0xac]
push dword [ebx]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.00538570
push dword [ebx + 8]
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0xdc]
push eax
call fcn.00538570
push dword [ebx + 4]
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.00538570
mov edx, dword [esp + 0xf4]
add esp, 0x24
mov esi, dword [esp + 0xc0]
test ebp, ebp
mov ebp, dword [esp + 0xc8]
mov edi, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x40], 0
mov dword [esp + 0x60], edx
mov dword [esp + 0x74], esi
mov dword [esp + 0x50], ebp
jle 0x5347ea
lea eax, [esp + 0xe4]
mov dword [esp + 0x24], eax
jmp 0x5341a4
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0xd4]
mov eax, dword [eax + edx*8 + 4]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + esi*8 + 4]
mov al, byte [eax + esi*8 + 2]
mov byte [esp + 0x47], al
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0xcc]
mov al, byte [eax + edx*8 + 2]
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x50]
mov ebp, dword [ecx + ebp*8 + 4]
mov al, byte [ecx + eax*8 + 2]
mov ecx, dword [esp + 0xc4]
movzx edx, word [ecx + esi*8]
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x64], edx
movzx edx, word [ecx + esi*8]
mov ecx, dword [esp + 0xcc]
mov esi, dword [esp + 0x50]
mov dword [esp + 0x70], edx
movzx edx, word [ecx + esi*8]
mov esi, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc4]
movzx edx, byte [edx + esi*8 + 3]
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x60]
movzx edx, byte [esi + edx*8 + 3]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x50]
movzx edx, byte [ecx + edx*8 + 3]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x3c], edx
cmp al, 1
jbe 0x53451d
cmp dword [esp + 0x164], 0
je 0x534339
cmp al, 0x19
jb 0x534339
mov ecx, ebx
movzx eax, al
and ecx, 0x1f
sub eax, 5
mov edx, esi
add ebx, eax
mov ebp, edx
shl ebp, cl
mov ecx, eax
mov eax, dword [esp + 0x50]
neg ecx
and ecx, 0x1f
shr ebp, cl
mov ecx, dword [esp + 0xcc]
shl ebp, 5
add ebp, dword [ecx + eax*8 + 4]
mov ecx, ebx
cmp ebx, 0x20
jbe 0x5342c3
mov edi, 0x5a16c8
jmp 0x534313
cmp edi, dword [esp + 0xbc]
jb 0x5342d8
mov eax, ebx
shr eax, 3
sub edi, eax
and ecx, 7
jmp 0x534308
mov esi, dword [esp + 0xb8]
cmp edi, esi
jne 0x5342ec
cmp ebx, 0x20
jb 0x53431a
mov ecx, ebx
jmp 0x53431a
shr ecx, 3
mov eax, edi
sub eax, ecx
cmp eax, esi
jae 0x5342fb
mov ecx, edi
sub ecx, esi
sub edi, ecx
lea eax, [ecx*8]
mov ecx, ebx
sub ecx, eax
mov edx, dword [edi]
mov ebx, ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb4], edi
mov esi, dword [esp + 0xac]
and ecx, 0x1f
mov eax, edx
add ebx, 5
shl eax, cl
shr eax, 0x1b
add ebp, eax
mov dword [esp + 0x18], ebp
jmp 0x5343c7
mov ecx, ebx
movzx eax, al
and ecx, 0x1f
mov edx, esi
shl edx, cl
add ebx, eax
mov ecx, eax
mov dword [esp + 0xb0], ebx
neg ecx
and ecx, 0x1f
shr edx, cl
add ebp, edx
mov dword [esp + 0x18], ebp
cmp ebx, 0x20
jbe 0x534370
mov edi, 0x5a16c8
mov dword [esp + 0xb4], edi
jmp 0x5343ce
cmp edi, dword [esp + 0xbc]
jb 0x534390
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov eax, dword [edi]
mov esi, eax
mov dword [esp + 0xac], eax
jmp 0x5343c0
mov edx, dword [esp + 0xb8]
cmp edi, edx
je 0x5343ce
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x5343ac
mov ecx, edi
sub ecx, edx
sub edi, ecx
lea eax, [ecx*8]
sub ebx, eax
mov esi, dword [edi]
mov dword [esp + 0xac], esi
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0xd8], ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0xdc], ecx
mov al, byte [esp + 0x23]
test al, al
je 0x534429
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, esi
shl eax, cl
add ebx, edx
mov ecx, edx
mov dword [esp + 0xb0], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x6c]
add ecx, eax
mov al, byte [esp + 0x23]
mov dword [esp + 0x7c], ecx
mov dl, byte [esp + 0x47]
movzx ecx, al
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x53444f
cmp ebx, 0x20
jbe 0x5345d7
mov edi, 0x5a16c8
mov dword [esp + 0xb4], edi
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0xac]
test dl, dl
je 0x534483
mov ecx, ebx
movzx edx, dl
and ecx, 0x1f
add ebx, edx
shl eax, cl
mov ecx, edx
neg ecx
mov dword [esp + 0xb0], ebx
and ecx, 0x1f
shr eax, cl
add ebp, eax
mov dword [esp + 0x78], ebp
cmp ebx, 0x20
jbe 0x534649
mov edi, 0x5a16c8
mov dword [esp + 0xb4], edi
mov ebp, dword [esp + 0xac]
mov eax, dword [esp + 0x160]
dec eax
cmp dword [esp + 0x40], eax
je 0x5347b1
mov esi, dword [esp + 0x68]
mov eax, ebp
lea edx, [esi + ebx]
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
and eax, dword [esi*4 + 0x5a1648]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x30]
add edx, esi
movzx ecx, cx
add ecx, eax
mov eax, ebp
mov dword [esp + 0x74], ecx
mov dword [esp + 0xc0], ecx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x70]
and eax, dword [esi*4 + 0x5a1648]
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0xd0], ecx
cmp edx, 0x20
jbe 0x5346b4
mov edi, 0x5a16c8
jmp 0x5346f9
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x53455a
mov ebp, dword [esp + 0x58]
mov eax, ebp
mov ecx, dword [esp + edx*4 + 0xd8]
neg eax
mov dword [esp + 0x18], ecx
sbb eax, eax
and eax, 4
mov edx, dword [esp + eax + 0xd8]
mov dword [esp + 0xdc], edx
mov dword [esp + 0xd8], ecx
jmp 0x5343f5
mov ecx, ebx
mov eax, esi
and ecx, 0x1f
inc ebx
shl eax, cl
shr eax, 0x1f
mov dword [esp + 0xb0], ebx
lea ecx, [eax + edx]
xor eax, eax
add ecx, ebp
cmp ecx, 3
jne 0x5345a2
mov ecx, dword [esp + 0xd8]
lea ebp, [ecx - 1]
test ebp, ebp
sete al
sub ebp, eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x18], ebp
mov dword [esp + 0xe0], eax
jmp 0x5343e3
mov ebp, dword [esp + ecx*4 + 0xd8]
test ebp, ebp
sete al
sub ebp, eax
mov dword [esp + 0x18], ebp
cmp ecx, 1
je 0x5343dc
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0xe0], eax
jmp 0x5343e3
mov esi, dword [esp + 0xb8]
cmp edi, dword [esp + 0xbc]
jb 0x53460d
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov eax, dword [edi]
mov dword [esp + 0xac], eax
jmp 0x53445d
cmp edi, esi
je 0x534456
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x534626
mov ecx, edi
sub ecx, esi
imul eax, ecx, 0xfffffff8
sub edi, ecx
mov dword [esp + 0xb4], edi
add ebx, eax
mov eax, dword [edi]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xac], eax
jmp 0x53445d
cmp edi, dword [esp + 0xbc]
jb 0x534678
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
jmp 0x53449f
cmp edi, esi
je 0x534498
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x534691
mov ecx, edi
sub ecx, esi
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0xb4], edi
mov ebp, dword [edi]
add ebx, eax
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], ebx
jmp 0x53449f
cmp edi, dword [esp + 0xbc]
jb 0x5346c9
mov eax, edx
shr eax, 3
sub edi, eax
and edx, 7
jmp 0x5346f0
mov ebx, dword [esp + 0xb8]
cmp edi, ebx
je 0x534700
mov ecx, edx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x5346e5
mov ecx, edi
sub ecx, ebx
lea eax, [ecx*8]
sub edi, ecx
sub edx, eax
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb4], edi
mov esi, dword [esp + 0x3c]
mov eax, ebp
lea ebx, [esi + edx]
mov ecx, ebx
mov dword [esp + 0xb0], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
and eax, dword [esi*4 + 0x5a1648]
mov ecx, dword [esp + 0x1c]
movzx ebp, cx
add ebp, eax
mov dword [esp + 0x50], ebp
mov dword [esp + 0xc8], ebp
cmp ebx, 0x20
jbe 0x534747
mov edi, 0x5a16c8
mov dword [esp + 0xb4], edi
jmp 0x5347b5
cmp edi, dword [esp + 0xbc]
jb 0x534773
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov eax, dword [edi]
mov dword [esp + 0xac], eax
jmp 0x5347b5
mov ebp, dword [esp + 0xb8]
cmp edi, ebp
je 0x5347b1
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x53478f
mov ecx, edi
sub ecx, ebp
sub edi, ecx
lea eax, [ecx*8]
sub ebx, eax
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov esi, dword [edi]
mov dword [esp + 0xac], esi
mov ebp, dword [esp + 0x50]
mov edx, dword [esp + 0x24]
movq xmm0, qword [esp + 0x78]
mov eax, dword [esp + 0x18]
movq qword [edx], xmm0
mov dword [edx + 8], eax
add edx, 0xc
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x40], eax
cmp eax, dword [esp + 0x5c]
jl 0x5341a0
jmp 0x5347ec
xor eax, eax
cmp eax, dword [esp + 0x160]
jge 0x535715
nop dword [eax]
mov eax, dword [esp + 0xd4]
mov esi, dword [esp + 0x74]
mov eax, dword [eax + edx*8 + 4]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + esi*8 + 4]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x78], ecx
mov ebp, dword [eax + ebp*8 + 4]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0xc4]
mov al, byte [ebp + esi*8 + 2]
mov byte [esp + 0x47], al
mov eax, dword [esp + 0xd4]
mov al, byte [eax + edx*8 + 2]
mov edx, dword [esp + 0xcc]
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x50]
mov al, byte [edx + eax*8 + 2]
movzx edx, word [ebp + esi*8]
mov esi, dword [esp + 0x60]
mov ebp, dword [esp + 0xd4]
mov dword [esp + 0x64], edx
movzx edx, word [ebp + esi*8]
mov ebp, dword [esp + 0xcc]
mov esi, dword [esp + 0x50]
mov dword [esp + 0x58], edx
movzx edx, word [ebp + esi*8]
mov esi, dword [esp + 0x74]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xc4]
movzx edx, byte [edx + esi*8 + 3]
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x60]
movzx edx, byte [esi + edx*8 + 3]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x50]
movzx edx, byte [ebp + edx*8 + 3]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x30], edx
cmp al, 1
jbe 0x534b89
cmp dword [esp + 0x164], 0
je 0x53499c
cmp al, 0x19
jb 0x53499c
mov ecx, ebx
movzx eax, al
and ecx, 0x1f
mov edx, esi
shl esi, cl
sub eax, 5
mov ecx, eax
add ebx, eax
neg ecx
and ecx, 0x1f
shr esi, cl
mov ecx, ebx
shl esi, 5
add esi, ebp
cmp ebx, 0x20
jbe 0x534922
mov edi, 0x5a16c8
jmp 0x534972
cmp edi, dword [esp + 0xbc]
jb 0x534937
mov eax, ebx
shr eax, 3
sub edi, eax
and ecx, 7
jmp 0x534967
mov ebp, dword [esp + 0xb8]
cmp edi, ebp
jne 0x53494b
cmp ebx, 0x20
jb 0x534979
mov ecx, ebx
jmp 0x534979
shr ecx, 3
mov eax, edi
sub eax, ecx
cmp eax, ebp
jae 0x53495a
mov ecx, edi
sub ecx, ebp
sub edi, ecx
lea eax, [ecx*8]
mov ecx, ebx
sub ecx, eax
mov edx, dword [edi]
mov ebx, ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb4], edi
and ecx, 0x1f
mov eax, edx
shl eax, cl
add ebx, 5
shr eax, 0x1b
add esi, eax
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0xac]
mov ebp, dword [esp + 0x70]
jmp 0x534a2a
mov ecx, ebx
movzx eax, al
and ecx, 0x1f
mov edx, esi
shl edx, cl
add ebx, eax
mov ecx, eax
mov dword [esp + 0xb0], ebx
neg ecx
and ecx, 0x1f
shr edx, cl
add ebp, edx
mov dword [esp + 0x70], ebp
cmp ebx, 0x20
jbe 0x5349d3
mov edi, 0x5a16c8
mov dword [esp + 0xb4], edi
jmp 0x534a31
cmp edi, dword [esp + 0xbc]
jb 0x5349f3
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov eax, dword [edi]
mov esi, eax
mov dword [esp + 0xac], eax
jmp 0x534a23
mov edx, dword [esp + 0xb8]
cmp edi, edx
je 0x534a31
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x534a0f
mov ecx, edi
sub ecx, edx
sub edi, ecx
lea eax, [ecx*8]
sub ebx, eax
mov esi, dword [edi]
mov dword [esp + 0xac], esi
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0xd8], ebp
mov al, byte [esp + 0x23]
mov dword [esp + 0xdc], ecx
test al, al
je 0x534a88
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, esi
shl eax, cl
add ebx, edx
mov ecx, edx
mov dword [esp + 0xb0], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x3c]
add ecx, eax
mov al, byte [esp + 0x23]
mov dword [esp + 0x7c], ecx
mov dl, byte [esp + 0x47]
mov esi, dword [esp + 0xbc]
movzx ecx, al
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x534ab5
cmp ebx, 0x20
jbe 0x534c38
mov edi, 0x5a16c8
mov dword [esp + 0xb4], edi
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0xac]
test dl, dl
je 0x534aed
mov ecx, ebx
movzx edx, dl
and ecx, 0x1f
add ebx, edx
shl eax, cl
mov ecx, edx
neg ecx
mov dword [esp + 0xb0], ebx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x6c]
add ecx, eax
mov dword [esp + 0x78], ecx
cmp ebx, 0x20
jbe 0x534ca5
mov edi, 0x5a16c8
mov dword [esp + 0xb4], edi
mov ebp, dword [esp + 0xac]
mov eax, dword [esp + 0x160]
mov edx, dword [esp + 0x40]
dec eax
cmp edx, eax
je 0x534dee
mov esi, dword [esp + 0x68]
mov eax, ebp
lea edx, [esi + ebx]
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
and eax, dword [esi*4 + 0x5a1648]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x24]
add edx, esi
movzx ecx, cx
add ecx, eax
mov eax, ebp
mov dword [esp + 0x74], ecx
mov dword [esp + 0xc0], ecx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x58]
and eax, dword [esi*4 + 0x5a1648]
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0xd0], ecx
cmp edx, 0x20
jbe 0x534d0b
mov edi, 0x5a16c8
jmp 0x534d50
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x534bbb
mov edx, dword [esp + edx*4 + 0xd8]
mov eax, ecx
neg eax
mov dword [esp + 0x70], edx
sbb eax, eax
and eax, 4
mov ecx, dword [esp + eax + 0xd8]
mov dword [esp + 0xd8], edx
jmp 0x534a4d
mov ecx, ebx
mov eax, esi
and ecx, 0x1f
inc ebx
shl eax, cl
shr eax, 0x1f
mov dword [esp + 0xb0], ebx
lea ecx, [eax + edx]
xor eax, eax
add ecx, ebp
cmp ecx, 3
jne 0x534c03
mov ecx, dword [esp + 0xd8]
lea ebp, [ecx - 1]
test ebp, ebp
sete al
sub ebp, eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x70], ebp
mov dword [esp + 0xe0], eax
jmp 0x534a46
mov ebp, dword [esp + ecx*4 + 0xd8]
test ebp, ebp
sete al
sub ebp, eax
mov dword [esp + 0x70], ebp
cmp ecx, 1
je 0x534a3f
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0xe0], eax
jmp 0x534a46
mov ebp, dword [esp + 0xb8]
cmp edi, esi
jb 0x534c69
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov eax, dword [edi]
mov dword [esp + 0xac], eax
jmp 0x534ac3
cmp edi, ebp
je 0x534abc
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x534c82
mov ecx, edi
sub ecx, ebp
imul eax, ecx, 0xfffffff8
sub edi, ecx
mov dword [esp + 0xb4], edi
add ebx, eax
mov eax, dword [edi]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xac], eax
jmp 0x534ac3
cmp edi, esi
jb 0x534ccf
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
jmp 0x534b09
cmp edi, ebp
je 0x534b02
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x534ce8
mov ecx, edi
sub ecx, ebp
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0xb4], edi
mov ebp, dword [edi]
add ebx, eax
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], ebx
jmp 0x534b09
cmp edi, dword [esp + 0xbc]
jb 0x534d20
mov eax, edx
shr eax, 3
sub edi, eax
and edx, 7
jmp 0x534d47
mov ebx, dword [esp + 0xb8]
cmp edi, ebx
je 0x534d57
mov ecx, edx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x534d3c
mov ecx, edi
sub ecx, ebx
lea eax, [ecx*8]
sub edi, ecx
sub edx, eax
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb4], edi
mov esi, dword [esp + 0x30]
mov eax, ebp
lea ebx, [edx + esi]
mov ecx, ebx
mov dword [esp + 0xb0], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x18]
and eax, dword [esi*4 + 0x5a1648]
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0xc8], ecx
cmp ebx, 0x20
jbe 0x534d97
mov edi, 0x5a16c8
jmp 0x534de3
cmp edi, dword [esp + 0xbc]
jb 0x534dac
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x534dd3
mov edx, dword [esp + 0xb8]
cmp edi, edx
je 0x534dea
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x534dc8
mov ecx, edi
sub ecx, edx
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov eax, dword [edi]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], edi
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esi + 0x7610]
cmp ecx, 2
jne 0x53511f
mov esi, dword [esi + 0x760c]
lea ebp, [esp + 0xe4]
and edx, 7
lea eax, [edx + edx*2]
mov edx, dword [esp + 0x14]
lea ebp, [ebp + eax*4]
mov eax, dword [ebp]
add eax, edx
mov dword [esp + 0x3c], ebp
cmp eax, esi
jbe 0x535123
sub esi, edx
je 0x534e55
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
sub eax, ecx
cmp esi, eax
ja 0x53570b
push esi
push edx
push ecx
call fcn.00538790
sub dword [ebp], esi
add esp, 0xc
add dword [esp + 0x10], esi
mov ecx, dword [esp + 0x4c]
movq xmm0, qword [ebp]
mov esi, dword [esp + 0x10]
movq qword [esp + 0x88], xmm0
mov edx, dword [esp + 0x88]
lea eax, [ecx + 0x7614]
mov dword [esp + 0x34], eax
add esi, edx
lea eax, [ecx + 0x17614]
mov dword [ecx + 0x7610], 0
mov ecx, dword [ebp + 8]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x18], esi
lea ebp, [eax + edx]
mov eax, dword [esp + 0x4c]
add edx, 0x7614
mov dword [esp + 0x58], ebp
add eax, edx
mov edx, esi
sub edx, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edx
cmp eax, dword [esp + 0x48]
ja 0x535101
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
add ecx, ebp
add eax, 0xffffffe0
cmp ecx, eax
ja 0x535101
mov ecx, dword [esp + 0x2c]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x535101
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax + 0x7614]
mov eax, dword [esp + 0x88]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x534f6c
mov edx, dword [esp + 0x4c]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x7624]
lea esi, [ecx + eax]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x18]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x534f68
mov eax, dword [esp + 0x1c]
add ecx, 0x10
add edx, 0x7634
nop dword [eax + eax]
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x534f50
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x34], eax
mov eax, esi
sub eax, dword [esp + 0x28]
cmp ecx, eax
jbe 0x534fec
mov eax, esi
sub eax, dword [esp + 0x54]
cmp ecx, eax
ja 0x534076
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
add edx, eax
lea eax, [edx + ecx]
cmp eax, dword [esp + 0x38]
ja 0x534fbb
push ecx
push edx
push esi
call fcn.00547de0
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x5356b9
mov esi, dword [esp + 0x38]
sub esi, edx
push esi
push edx
mov edx, dword [esp + 0x20]
push edx
call fcn.00547de0
mov eax, dword [esp + 0x3c]
add esp, 0xc
add dword [esp + 0x18], esi
sub eax, esi
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x30], eax
jmp 0x534ff0
mov eax, dword [esp + 0x30]
cmp ecx, 0x10
jb 0x535036
lea ecx, [eax + esi]
mov dword [esp + 0x1c], ecx
movups xmm0, xmmword [edx]
movups xmmword [esi], xmm0
cmp eax, 0x10
jle 0x5355ac
lea ecx, [edx + 0x10]
mov edx, dword [esp + 0x1c]
lea eax, [esi + 0x10]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, edx
jb 0x535015
mov esi, dword [esp + 0x10]
jmp 0x5356b9
cmp ecx, 8
jae 0x53506a
movzx eax, byte [edx]
mov byte [esi], al
movzx eax, byte [edx + 1]
mov byte [esi + 1], al
movzx eax, byte [edx + 2]
mov byte [esi + 2], al
movzx eax, byte [edx + 3]
add edx, dword [ecx*4 + 0x5a1508]
mov byte [esi + 3], al
mov eax, dword [edx]
sub edx, dword [ecx*4 + 0x5a1528]
mov dword [esi + 4], eax
jmp 0x535074
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x30]
cmp ecx, 8
jbe 0x5355ac
lea esi, [edx + 8]
mov edx, dword [esp + 0x18]
add edx, 8
lea eax, [ecx - 8]
mov dword [esp + 0x3c], eax
lea ecx, [edx + eax]
mov eax, edx
sub eax, esi
mov dword [esp + 0x1c], ecx
cmp eax, 0x10
jge 0x5350c6
sub esi, edx
mov ebp, ecx
mov eax, dword [edx + esi]
mov ecx, dword [edx + esi + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, ebp
jb 0x5350a6
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x10]
jmp 0x5356b9
cmp dword [esp + 0x3c], 0x10
movups xmm0, xmmword [esi]
movups xmmword [edx], xmm0
jle 0x5355ac
add edx, 0x10
lea eax, [esi + 0x10]
nop dword [eax]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, ecx
jb 0x5350e0
mov esi, dword [esp + 0x10]
jmp 0x5356b9
push dword [esp + 0x38]
lea eax, [esp + 0x38]
push dword [esp + 0x58]
push dword [esp + 0x30]
push dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x50]
jmp 0x53568b
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x10]
and eax, 7
cmp ecx, 2
lea eax, [eax + eax*2]
mov ecx, dword [esp + eax*4 + 0xec]
lea eax, [esp + eax*4 + 0xe4]
movq xmm0, qword [eax]
mov dword [esp + 0x24], eax
mov dword [esp + 0x68], ecx
jne 0x53541a
mov eax, dword [eax]
add eax, 0xffffffe0
movq qword [esp + 0x94], xmm0
add eax, edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x6c], eax
add esi, edx
mov eax, dword [esp + 0x98]
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], esi
lea ebp, [eax + edx]
mov eax, dword [esp + 0x14]
add eax, edx
mov dword [esp + 0x58], ebp
mov edx, esi
mov dword [esp + 0x3c], eax
sub edx, ecx
mov dword [esp + 0x64], edx
cmp eax, dword [esp + 0x48]
ja 0x5353d1
mov eax, dword [esp + 0x10]
add eax, ebp
cmp eax, dword [esp + 0x6c]
ja 0x5353d1
mov ecx, dword [esp + 0x2c]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x5353d1
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x94]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x53522c
mov edx, dword [esp + 0x14]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea esi, [ecx + eax]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x18]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x535228
mov eax, dword [esp + 0x1c]
add ecx, 0x10
add edx, 0x20
nop dword [eax + eax]
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x535210
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], eax
mov eax, esi
sub eax, dword [esp + 0x28]
cmp ecx, eax
jbe 0x5352b0
mov eax, esi
sub eax, dword [esp + 0x54]
cmp ecx, eax
ja 0x534076
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
add edx, eax
lea eax, [edx + ecx]
cmp eax, dword [esp + 0x38]
ja 0x53527f
push ecx
push edx
push esi
call fcn.00547de0
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x5356b9
mov esi, dword [esp + 0x38]
sub esi, edx
push esi
push edx
mov edx, dword [esp + 0x20]
push edx
call fcn.00547de0
mov eax, dword [esp + 0x3c]
add esp, 0xc
add dword [esp + 0x18], esi
sub eax, esi
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x30], eax
jmp 0x5352b4
mov eax, dword [esp + 0x30]
cmp ecx, 0x10
jb 0x535301
lea ecx, [eax + esi]
mov dword [esp + 0x1c], ecx
movups xmm0, xmmword [edx]
movups xmmword [esi], xmm0
cmp eax, 0x10
jle 0x5355ac
lea ecx, [edx + 0x10]
mov edx, dword [esp + 0x1c]
lea eax, [esi + 0x10]
nop dword [eax]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, edx
jb 0x5352e0
mov esi, dword [esp + 0x10]
jmp 0x5356b9
cmp ecx, 8
jae 0x535335
movzx eax, byte [edx]
mov byte [esi], al
movzx eax, byte [edx + 1]
mov byte [esi + 1], al
movzx eax, byte [edx + 2]
mov byte [esi + 2], al
movzx eax, byte [edx + 3]
add edx, dword [ecx*4 + 0x5a1508]
mov byte [esi + 3], al
mov eax, dword [edx]
sub edx, dword [ecx*4 + 0x5a1528]
mov dword [esi + 4], eax
jmp 0x53533f
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x30]
cmp ecx, 8
jbe 0x5355ac
lea esi, [edx + 8]
mov edx, dword [esp + 0x18]
add edx, 8
lea eax, [ecx - 8]
mov dword [esp + 0x3c], eax
lea ecx, [eax + edx]
mov eax, edx
sub eax, esi
mov dword [esp + 0x1c], ecx
cmp eax, 0x10
jge 0x535391
sub esi, edx
mov ebp, ecx
mov eax, dword [esi + edx]
mov ecx, dword [esi + edx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, ebp
jb 0x535371
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x10]
jmp 0x5356b9
cmp dword [esp + 0x3c], 0x10
movups xmm0, xmmword [esi]
movups xmmword [edx], xmm0
jle 0x5355ac
add edx, 0x10
lea eax, [esi + 0x10]
nop dword [eax + eax]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, ecx
jb 0x5353b0
mov esi, dword [esp + 0x10]
jmp 0x5356b9
push dword [esp + 0x38]
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x38]
push dword [esp + 0x58]
push dword [esp + 0x30]
push dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x38]
sub esp, 0xc
mov ecx, esp
push dword [esp + 0x8c]
movq xmm0, qword [eax]
push dword [esp + 0x50]
mov eax, dword [eax + 8]
movq qword [ecx], xmm0
push esi
mov dword [ecx + 8], eax
call fcn.00538410
add esp, 0x2c
jmp 0x5356af
movq qword [esp + 0xa0], xmm0
mov edx, dword [esp + 0xa0]
add esi, edx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], esi
lea ebp, [ecx + edx]
mov ecx, dword [esp + 0x14]
add ecx, edx
mov dword [esp + 0x58], ebp
mov edx, esi
mov dword [esp + 0x3c], ecx
sub edx, dword [eax + 8]
mov dword [esp + 0x6c], edx
cmp ecx, dword [esp + 0x48]
ja 0x535676
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
add ecx, ebp
add eax, 0xffffffe0
cmp ecx, eax
ja 0x535672
mov ecx, dword [esp + 0x2c]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x535672
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0xa0]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x5354ec
mov edx, dword [esp + 0x14]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea esi, [ecx + eax]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x30]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x5354e8
mov eax, dword [esp + 0x1c]
add ecx, 0x10
add edx, 0x20
nop dword [eax]
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x5354d0
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], eax
mov eax, esi
sub eax, dword [esp + 0x28]
cmp ecx, eax
jbe 0x53556f
mov eax, esi
sub eax, dword [esp + 0x54]
cmp ecx, eax
ja 0x534076
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
add edx, eax
lea eax, [edx + ecx]
cmp eax, dword [esp + 0x38]
ja 0x53553f
push ecx
push edx
push esi
call fcn.00547de0
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x5356b9
mov esi, dword [esp + 0x38]
sub esi, edx
push esi
push edx
push dword [esp + 0x38]
call fcn.00547de0
mov eax, dword [esp + 0x24]
add esp, 0xc
add dword [esp + 0x30], esi
sub eax, esi
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x18], eax
jmp 0x535573
mov eax, dword [esp + 0x18]
cmp ecx, 0x10
jb 0x5355b5
lea ecx, [eax + esi]
mov dword [esp + 0x1c], ecx
movups xmm0, xmmword [edx]
movups xmmword [esi], xmm0
cmp eax, 0x10
jle 0x5355ac
lea ecx, [edx + 0x10]
mov edx, dword [esp + 0x1c]
lea eax, [esi + 0x10]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, edx
jb 0x535594
mov esi, dword [esp + 0x10]
jmp 0x5356b9
cmp ecx, 8
jae 0x5355e9
movzx eax, byte [edx]
mov byte [esi], al
movzx eax, byte [edx + 1]
mov byte [esi + 1], al
movzx eax, byte [edx + 2]
mov byte [esi + 2], al
movzx eax, byte [edx + 3]
add edx, dword [ecx*4 + 0x5a1508]
mov byte [esi + 3], al
mov eax, dword [edx]
sub edx, dword [ecx*4 + 0x5a1528]
mov dword [esi + 4], eax
jmp 0x5355f3
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x18]
cmp ecx, 8
jbe 0x5355ac
lea eax, [ecx - 8]
lea ecx, [edx + 8]
mov dword [esp + 0x3c], eax
lea edx, [esi + 8]
mov dword [esp + 0x1c], ecx
lea esi, [edx + eax]
mov eax, edx
sub eax, ecx
cmp eax, 0x10
jge 0x53563d
mov ebp, ecx
sub ebp, edx
nop dword [eax]
mov eax, dword [edx + ebp]
mov ecx, dword [edx + ebp + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, esi
jb 0x535620
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x10]
jmp 0x5356b9
cmp dword [esp + 0x3c], 0x10
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
jle 0x5355ac
add edx, 0x10
lea eax, [ecx + 0x10]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, esi
jb 0x535654
mov esi, dword [esp + 0x10]
jmp 0x5356b9
mov eax, dword [esp + 0x24]
push dword [esp + 0x38]
lea ecx, [esp + 0x38]
push dword [esp + 0x58]
push dword [esp + 0x30]
push dword [esp + 0x54]
push ecx
movq xmm0, qword [eax]
sub esp, 0xc
mov eax, dword [eax + 8]
mov ecx, esp
mov esi, dword [esp + 0x30]
push dword [esp + 0x4c]
movq qword [ecx], xmm0
push esi
mov dword [ecx + 8], eax
call fcn.00538310
add esp, 0x28
mov ebp, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
cmp ebp, 0xffffff88
ja 0x535f74
mov edx, dword [esp + 0x40]
add esi, ebp
movq xmm0, qword [esp + 0x78]
mov eax, edx
mov ebp, dword [esp + 0x160]
and eax, 7
mov ecx, dword [esp + 0x70]
inc edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x40], edx
lea eax, [eax + eax*2]
movq qword [esp + eax*4 + 0xe4], xmm0
mov dword [esp + eax*4 + 0xec], ecx
cmp edx, ebp
jge 0x535720
mov ebp, dword [esp + 0x50]
mov edx, dword [esp + 0x60]
jmp 0x534800
mov ebp, 0xffffffba
jmp 0x535f74
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x160]
lea eax, [esp + 0xac]
push eax
call fcn.0052ea50
add esp, 4
test eax, eax
je 0x534076
sub edx, dword [esp + 0x5c]
mov dword [esp + 0x40], edx
cmp edx, ebp
jge 0x535ed7
nop dword [eax + eax]
and edx, 7
lea esi, [esp + 0xe4]
lea eax, [edx + edx*2]
mov edx, dword [esp + 0x4c]
lea esi, [esi + eax*4]
cmp dword [edx + 0x7610], 2
jne 0x535c5a
mov ebx, dword [esi]
mov ecx, dword [esp + 0x14]
mov edi, dword [edx + 0x760c]
lea eax, [ebx + ecx]
cmp eax, edi
jbe 0x5359f4
mov ebp, dword [esp + 0x10]
sub edi, ecx
je 0x5357b7
mov eax, dword [esp + 0x2c]
sub eax, ebp
cmp edi, eax
ja 0x53570b
push edi
push ecx
push ebp
call fcn.00538790
mov edx, dword [esp + 0x58]
sub ebx, edi
add esp, 0xc
mov dword [esi], ebx
add ebp, edi
mov dword [esp + 0x10], ebp
movq xmm0, qword [esi]
lea eax, [edx + 0x17614]
mov dword [esp + 0x48], eax
lea ecx, [edx + 0x7614]
mov eax, dword [esi + 8]
movq qword [esp + 0xa0], xmm0
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xa0]
mov dword [edx + 0x7610], 0
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x34], ecx
lea ebx, [eax + ebp]
mov dword [esp + 0x24], edx
mov edi, ebx
sub edi, dword [esi + 8]
lea ebp, [edx + eax]
add eax, ecx
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x48]
ja 0x535e6f
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
add ecx, ebp
add eax, 0xffffffe0
cmp ecx, eax
ja 0x535e6f
mov ecx, dword [esp + 0x2c]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x535e6f
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xa0]
movups xmm0, xmmword [esi + 0x7614]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x53589c
movups xmm0, xmmword [esi + 0x7624]
lea edx, [esi + 0x7624]
add ecx, 0x10
add eax, 0xfffffff0
movups xmmword [ecx], xmm0
lea esi, [ecx + eax]
cmp eax, 0x10
jle 0x535898
add ecx, 0x10
add edx, 0x10
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, esi
jb 0x535880
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
mov eax, ebx
sub eax, esi
cmp ecx, eax
jbe 0x535906
mov eax, ebx
sub eax, dword [esp + 0x54]
cmp ecx, eax
ja 0x534076
mov ecx, dword [esp + 0x38]
mov eax, ecx
sub eax, esi
add edi, eax
lea eax, [edi + edx]
cmp eax, ecx
ja 0x5358e7
push edx
push edi
push ebx
call fcn.00547de0
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x535eb2
mov esi, ecx
sub esi, edi
push esi
push edi
push ebx
call fcn.00547de0
mov edx, dword [esp + 0x30]
add esp, 0xc
mov edi, dword [esp + 0x28]
add ebx, esi
mov ecx, dword [esp + 0x5c]
sub edx, esi
cmp ecx, 0x10
jb 0x535944
lea esi, [edx + ebx]
movups xmm0, xmmword [edi]
movups xmmword [ebx], xmm0
cmp edx, 0x10
jle 0x535dbb
lea eax, [ebx + 0x10]
lea ecx, [edi + 0x10]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, esi
jb 0x535923
mov esi, dword [esp + 0x10]
jmp 0x535eb2
cmp ecx, 8
jae 0x535978
movzx eax, byte [edi]
mov byte [ebx], al
movzx eax, byte [edi + 1]
mov byte [ebx + 1], al
movzx eax, byte [edi + 2]
mov byte [ebx + 2], al
movzx eax, byte [edi + 3]
add edi, dword [ecx*4 + 0x5a1508]
mov byte [ebx + 3], al
mov eax, dword [edi]
sub edi, dword [ecx*4 + 0x5a1528]
mov dword [ebx + 4], eax
jmp 0x535982
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
cmp edx, 8
jbe 0x535dbb
lea ecx, [edx - 8]
add edi, 8
lea edx, [ebx + 8]
mov eax, edx
lea esi, [edx + ecx]
sub eax, edi
cmp eax, 0x10
jge 0x5359be
sub edi, edx
mov eax, dword [edx + edi]
mov ecx, dword [edx + edi + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, esi
jb 0x5359a2
mov esi, dword [esp + 0x10]
jmp 0x535eb2
movups xmm0, xmmword [edi]
movups xmmword [edx], xmm0
cmp ecx, 0x10
jle 0x535dbb
add edx, 0x10
lea eax, [edi + 0x10]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, esi
jb 0x5359d3
mov esi, dword [esp + 0x10]
jmp 0x535eb2
mov eax, dword [esi + 8]
add ecx, 0xffffffe0
movq xmm0, qword [esi]
mov dword [esp + 0x5c], eax
mov eax, ebx
mov ebx, dword [esp + 0x10]
add ecx, eax
movq qword [esp + 0x94], xmm0
mov eax, dword [esp + 0x94]
add ebx, eax
mov edx, dword [esp + 0x98]
mov edi, ebx
sub edi, dword [esi + 8]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x24], edx
lea ebp, [edx + eax]
add eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x48]
ja 0x535c18
mov eax, dword [esp + 0x10]
add eax, ebp
cmp eax, ecx
ja 0x535c18
mov ecx, dword [esp + 0x2c]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x535c18
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x94]
movups xmm0, xmmword [esi]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x535abc
movups xmm0, xmmword [esi + 0x10]
lea edx, [esi + 0x10]
add ecx, 0x10
add eax, 0xfffffff0
movups xmmword [ecx], xmm0
lea esi, [ecx + eax]
cmp eax, 0x10
jle 0x535ab8
add ecx, 0x10
add edx, 0x10
nop
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, esi
jb 0x535aa0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], eax
mov eax, ebx
sub eax, esi
cmp ecx, eax
jbe 0x535b2a
mov eax, ebx
sub eax, dword [esp + 0x54]
cmp ecx, eax
ja 0x534076
mov ecx, dword [esp + 0x38]
mov eax, ecx
sub eax, esi
add edi, eax
lea eax, [edi + edx]
cmp eax, ecx
ja 0x535b0b
push edx
push edi
push ebx
call fcn.00547de0
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x535eb2
mov esi, ecx
sub esi, edi
push esi
push edi
push ebx
call fcn.00547de0
mov edx, dword [esp + 0x30]
add esp, 0xc
mov edi, dword [esp + 0x28]
add ebx, esi
mov ecx, dword [esp + 0x5c]
sub edx, esi
cmp ecx, 0x10
jb 0x535b68
lea esi, [edx + ebx]
movups xmm0, xmmword [edi]
movups xmmword [ebx], xmm0
cmp edx, 0x10
jle 0x535dbb
lea eax, [ebx + 0x10]
lea ecx, [edi + 0x10]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, esi
jb 0x535b47
mov esi, dword [esp + 0x10]
jmp 0x535eb2
cmp ecx, 8
jae 0x535b9c
movzx eax, byte [edi]
mov byte [ebx], al
movzx eax, byte [edi + 1]
mov byte [ebx + 1], al
movzx eax, byte [edi + 2]
mov byte [ebx + 2], al
movzx eax, byte [edi + 3]
add edi, dword [ecx*4 + 0x5a1508]
mov byte [ebx + 3], al
mov eax, dword [edi]
sub edi, dword [ecx*4 + 0x5a1528]
mov dword [ebx + 4], eax
jmp 0x535ba6
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
cmp edx, 8
jbe 0x535dbb
lea ecx, [edx - 8]
add edi, 8
lea edx, [ebx + 8]
mov eax, edx
lea esi, [edx + ecx]
sub eax, edi
cmp eax, 0x10
jge 0x535be2
sub edi, edx
mov eax, dword [edx + edi]
mov ecx, dword [edx + edi + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, esi
jb 0x535bc6
mov esi, dword [esp + 0x10]
jmp 0x535eb2
movups xmm0, xmmword [edi]
movups xmmword [edx], xmm0
cmp ecx, 0x10
jle 0x535dbb
add edx, 0x10
lea eax, [edi + 0x10]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, esi
jb 0x535bf7
mov esi, dword [esp + 0x10]
jmp 0x535eb2
push dword [esp + 0x38]
movq xmm0, qword [esi]
lea eax, [esp + 0x38]
push dword [esp + 0x58]
push dword [esp + 0x30]
push dword [esp + 0x54]
push eax
mov eax, dword [esi + 8]
sub esp, 0xc
mov esi, dword [esp + 0x30]
mov ecx, esp
push dword [esp + 0x5c]
movq qword [ecx], xmm0
push dword [esp + 0x50]
mov dword [ecx + 8], eax
push esi
call fcn.00538410
add esp, 0x2c
jmp 0x535ea8
movq xmm0, qword [esi]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x10]
movq qword [esp + 0x88], xmm0
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x24], edx
lea ebx, [eax + ecx]
lea ebp, [edx + eax]
mov edi, ebx
add eax, dword [esp + 0x14]
sub edi, dword [esi + 8]
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x48]
ja 0x535e6f
mov eax, dword [esp + 0x2c]
add ecx, ebp
add eax, 0xffffffe0
cmp ecx, eax
ja 0x535e6f
mov ecx, dword [esp + 0x2c]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x535e6f
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x88]
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
cmp eax, 0x10
jbe 0x535d20
movups xmm0, xmmword [ecx + 0x10]
lea edx, [ecx + 0x10]
add eax, 0xfffffff0
lea ecx, [esi + 0x10]
movups xmmword [ecx], xmm0
lea esi, [ecx + eax]
cmp eax, 0x10
jle 0x535d18
add ecx, 0x10
add edx, 0x10
nop dword [eax]
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, esi
jb 0x535d00
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], eax
mov eax, ebx
sub eax, dword [esp + 0x28]
cmp ecx, eax
jbe 0x535d8a
mov eax, ebx
sub eax, dword [esp + 0x54]
cmp ecx, eax
ja 0x534076
mov ecx, dword [esp + 0x38]
mov eax, ecx
sub eax, dword [esp + 0x28]
add edi, eax
lea eax, [edi + edx]
cmp eax, ecx
ja 0x535d6b
push edx
push edi
push ebx
call fcn.00547de0
add esp, 0xc
jmp 0x535eb2
mov esi, ecx
sub esi, edi
push esi
push edi
push ebx
call fcn.00547de0
mov edx, dword [esp + 0x30]
add esp, 0xc
mov edi, dword [esp + 0x28]
add ebx, esi
mov ecx, dword [esp + 0x5c]
sub edx, esi
cmp ecx, 0x10
jb 0x535dc4
lea esi, [edx + ebx]
movups xmm0, xmmword [edi]
movups xmmword [ebx], xmm0
cmp edx, 0x10
jle 0x535dbb
lea eax, [ebx + 0x10]
lea ecx, [edi + 0x10]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, esi
jb 0x535da3
mov esi, dword [esp + 0x10]
jmp 0x535eb2
cmp ecx, 8
jae 0x535df8
movzx eax, byte [edi]
mov byte [ebx], al
movzx eax, byte [edi + 1]
mov byte [ebx + 1], al
movzx eax, byte [edi + 2]
mov byte [ebx + 2], al
movzx eax, byte [edi + 3]
add edi, dword [ecx*4 + 0x5a1508]
mov byte [ebx + 3], al
mov eax, dword [edi]
sub edi, dword [ecx*4 + 0x5a1528]
mov dword [ebx + 4], eax
jmp 0x535e02
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
cmp edx, 8
jbe 0x535dbb
lea ecx, [edx - 8]
add edi, 8
lea edx, [ebx + 8]
mov eax, edx
lea esi, [edx + ecx]
sub eax, edi
cmp eax, 0x10
jge 0x535e3c
sub edi, edx
nop
mov eax, dword [edx + edi]
mov ecx, dword [edx + edi + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, esi
jb 0x535e20
mov esi, dword [esp + 0x10]
jmp 0x535eb2
movups xmm0, xmmword [edi]
movups xmmword [edx], xmm0
cmp ecx, 0x10
jle 0x535dbb
add edx, 0x10
lea eax, [edi + 0x10]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, esi
jb 0x535e51
mov esi, dword [esp + 0x10]
jmp 0x535eb2
push dword [esp + 0x38]
movq xmm0, qword [esi]
lea eax, [esp + 0x38]
push dword [esp + 0x58]
push dword [esp + 0x30]
push dword [esp + 0x54]
push eax
mov eax, dword [esi + 8]
sub esp, 0xc
mov esi, dword [esp + 0x30]
mov ecx, esp
push dword [esp + 0x4c]
movq qword [ecx], xmm0
push esi
mov dword [ecx + 8], eax
call fcn.00538310
add esp, 0x28
mov ebp, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
cmp ebp, 0xffffff88
ja 0x535f74
mov edx, dword [esp + 0x40]
add esi, ebp
inc edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x40], edx
cmp edx, dword [esp + 0x160]
jl 0x535750
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x48]
mov dword [esi + 0x6830], eax
mov eax, dword [esp + 0xe0]
mov dword [esi + 0x682c], ecx
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x6834], eax
jmp 0x535f14
mov esi, dword [esp + 0x4c]
cmp dword [esi + 0x7610], 2
jne 0x535f4a
mov eax, dword [esp + 0x2c]
sub ebp, ecx
sub eax, ebx
cmp ebp, eax
ja 0x53570b
test ebx, ebx
je 0x535f3e
push ebp
push ecx
push ebx
call fcn.00547de0
add esp, 0xc
add ebx, ebp
lea ecx, [esi + 0x7614]
lea ebp, [esi + 0x17614]
mov eax, dword [esp + 0x2c]
sub ebp, ecx
sub eax, ebx
cmp ebp, eax
ja 0x53570b
test ebx, ebx
je 0x535f6b
push ebp
push ecx
push ebx
call fcn.00547de0
add esp, 0xc
add ebx, ebp
mov ebp, ebx
sub ebp, dword [esp + 0x84]
mov ecx, dword [esp + 0x144]
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004224b5
add esp, 0x138
ret