Function at 0x562850
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x390
mov eax, dword [ebp + 0xc]
cmp dword [eax], 2
mov edx, eax
jne 0x56287c
mov edx, dword [eax + 4]
mov ecx, dword [edx + 0x28]
cmp ecx, 4
mov eax, ecx
ja 0x562886
test eax, eax
jne 0x5628b0
jmp 0x56288d
mov ecx, dword [edx + 0x28]
cmp ecx, 4
mov eax, ecx
jbe 0x562876
mov eax, dword [edx + 4]
test eax, eax
jne 0x5628b0
mov eax, dword [ebp + 0x10]
cmp dword [eax], 2
jne 0x562b33
mov eax, dword [eax + 4]
mov esi, dword [eax + 0x28]
cmp esi, 5
jae 0x562b3f
test esi, esi
je 0x562b4a
cmp ecx, 5
jb 0x5628b8
mov ecx, dword [edx + 4]
test ecx, ecx
je 0x562c63
mov eax, dword [ebp + 0x10]
cmp dword [eax], 2
jne 0x562a0e
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x28]
cmp ecx, 5
jae 0x562a1a
test ecx, ecx
je 0x562a25
lea ecx, [esp + 0x10]
call fcn.00545000
cmp dword [esp + 0x10], 2
je 0x564f32
movsd xmm2, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x30]
mov edx, dword [ebp + 0x10]
movq xmm0, qword [esp + 0x40]
movsd qword [esp + 0x2b0], xmm2
movsd qword [esp + 0x2a8], xmm1
movsd xmm2, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x20]
cmp dword [edx], 2
movq qword [esp + 0x2b8], xmm0
movsd qword [esp + 0x2a0], xmm2
movsd qword [esp + 0x298], xmm1
movsd xmm2, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0x290], xmm1
movsd qword [esp + 0x288], xmm2
jne 0x56296e
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 4]
lea ecx, [esp + 0x10]
call fcn.00545000
cmp dword [esp + 0x10], 2
je 0x564f39
movsd xmm2, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x30]
mov eax, dword [esp + 0x2b0]
movq xmm0, qword [esp + 0x40]
movsd qword [esp + 0x308], xmm2
movsd qword [esp + 0x300], xmm1
movsd xmm2, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x20]
cmp eax, 4
movq qword [esp + 0x310], xmm0
movsd qword [esp + 0x2f8], xmm2
movsd qword [esp + 0x2f0], xmm1
movsd xmm2, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0x2e8], xmm1
movsd qword [esp + 0x2e0], xmm2
jbe 0x562d83
mov eax, dword [esp + 0x28c]
mov edx, dword [esp + 0x290]
jmp 0x562d8a
mov ecx, dword [eax + 0x28]
cmp ecx, 5
jb 0x5628db
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x5628e3
cmp byte [ebp + 0x14], 0
je 0x563b4c
lea ecx, [esp + 0x10]
call fcn.00545000
mov eax, dword [esp + 0x10]
cmp eax, 2
je 0x564f56
movsd xmm0, qword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov dword [esp + 0xa0], 4
mov dword [esp + 0xa4], 0
mov dword [esp + 4], eax
mov dword [esp + 0xa8], 2
movsd qword [esp + 0x128], xmm0
movsd xmm0, qword [esp + 0x24]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x34]
mov dword [esp], edi
mov edi, dword [esp + 0x38]
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [esp + 0x2c]
mov dword [esp + 0x140], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x80], edi
movsd qword [esp + 0x138], xmm0
movq xmm0, qword [esp + 0x3c]
mov dword [esp + 0x210], esi
movq qword [esp + 0x208], xmm0
lea ecx, [esp + 0x10]
lea edx, [esp + 0xa0]
call fcn.0053b540
mov edx, dword [esp + 0x18]
lea edi, [esp + 0x18]
nop
mov ebx, dword [esp + 0x38]
mov ecx, edi
cmp ebx, 5
mov esi, ebx
jb 0x562b03
mov esi, dword [esp + 0x14]
mov ecx, edx
test esi, esi
je 0x563b6a
mov eax, dword [ecx + esi*8 - 8]
or eax, dword [ecx + esi*8 - 4]
jne 0x563b6a
cmp ebx, 5
lea ecx, [esp + 0x38]
jb 0x562b2a
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0x14]
test ebx, ebx
je 0x562af0
dec ebx
mov dword [ecx], ebx
jmp 0x562af0
mov esi, dword [eax + 0x28]
cmp esi, 5
jb 0x5628a8
mov esi, dword [eax + 4]
test esi, esi
jne 0x5628b0
cmp byte [ebp + 0x14], 0
je 0x563cd6
lea ecx, [esp + 0x10]
mov edx, eax
call fcn.00545000
mov eax, dword [esp + 0x10]
cmp eax, 2
mov dword [esp + 4], eax
je 0x564f5d
movsd xmm0, qword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa0], 4
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 2
movsd qword [esp + 0x208], xmm0
movsd xmm0, qword [esp + 0x24]
mov dword [esp], edi
mov dword [esp + 0x220], esi
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x44]
mov dword [esp + 0xc], eax
movsd qword [esp + 0x210], xmm0
movsd xmm0, qword [esp + 0x2c]
mov dword [esp + 0x80], edi
mov dword [esp + 0x320], esi
movsd qword [esp + 0x218], xmm0
movq xmm0, qword [esp + 0x3c]
movq qword [esp + 0x318], xmm0
lea ecx, [esp + 0x10]
lea edx, [esp + 0xa0]
call fcn.0053b540
mov edx, dword [esp + 0x18]
lea esi, [esp + 0x18]
nop word cs:[eax + eax]
nop
mov ebx, dword [esp + 0x38]
mov ecx, esi
cmp ebx, 5
mov edi, ebx
jb 0x562c33
mov edi, dword [esp + 0x14]
mov ecx, edx
test edi, edi
je 0x563d5a
mov eax, dword [ecx + edi*8 - 8]
or eax, dword [ecx + edi*8 - 4]
jne 0x563d5a
cmp ebx, 5
lea ecx, [esp + 0x38]
jb 0x562c5a
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0x14]
test ebx, ebx
je 0x562c20
dec ebx
mov dword [ecx], ebx
jmp 0x562c20
mov edx, dword [ebp + 0x10]
cmp byte [ebp + 0x14], 0
je 0x5639ba
cmp dword [edx], 2
jne 0x562c7b
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 4]
lea ecx, [esp + 0x10]
call fcn.00545000
mov eax, dword [esp + 0x10]
cmp eax, 2
je 0x564f4f
movsd xmm0, qword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov dword [esp + 0xa0], 4
mov dword [esp + 0xa4], 0
mov dword [esp + 4], eax
mov dword [esp + 0xa8], 2
movsd qword [esp + 0x128], xmm0
movsd xmm0, qword [esp + 0x24]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x34]
mov dword [esp], edi
mov edi, dword [esp + 0x38]
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [esp + 0x2c]
mov dword [esp + 0x140], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x80], edi
movsd qword [esp + 0x138], xmm0
movq xmm0, qword [esp + 0x3c]
mov dword [esp + 0x210], esi
movq qword [esp + 0x208], xmm0
lea ecx, [esp + 0x10]
lea edx, [esp + 0xa0]
call fcn.0053b540
mov edx, dword [esp + 0x18]
lea edi, [esp + 0x18]
nop word [eax + eax]
mov ebx, dword [esp + 0x38]
mov ecx, edi
cmp ebx, 5
mov esi, ebx
jb 0x562d53
mov esi, dword [esp + 0x14]
mov ecx, edx
test esi, esi
je 0x5639e3
mov eax, dword [ecx + esi*8 - 8]
or eax, dword [ecx + esi*8 - 4]
jne 0x5639e3
cmp ebx, 5
lea ecx, [esp + 0x38]
jb 0x562d7a
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0x14]
test ebx, ebx
je 0x562d40
dec ebx
mov dword [ecx], ebx
jmp 0x562d40
lea edx, [esp + 0x290]
movzx ebx, byte [esp + 0x2b8]
lea eax, [edx + eax*8]
mov dword [esp + 0x38], 0
mov dword [esp + 0x10], 0
lea ecx, [esp + 0x10]
push eax
call fcn.0053b3c0
add esp, 4
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x28]
mov eax, dword [esp + 0x308]
movq xmm0, qword [esp + 0x38]
movsd qword [esp + 0x110], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0x108], xmm2
movsd xmm2, qword [esp + 0x10]
cmp eax, 4
movq qword [esp + 0x118], xmm0
movsd qword [esp + 0x100], xmm1
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0xf0], xmm2
movsd qword [esp + 0xf8], xmm1
mov byte [esp + 0x120], bl
jbe 0x562e2f
mov eax, dword [esp + 0x2e4]
mov edx, dword [esp + 0x2e8]
jmp 0x562e36
lea edx, [esp + 0x2e8]
movzx ebx, byte [esp + 0x310]
lea eax, [edx + eax*8]
mov dword [esp + 0x38], 0
mov dword [esp + 0x10], 0
lea ecx, [esp + 0x10]
push eax
call fcn.0053b3c0
add esp, 4
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x28]
movq xmm0, qword [esp + 0x38]
cmp byte [ebp + 0x14], 0
movsd qword [esp + 0x1b8], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0x1b0], xmm2
movsd xmm2, qword [esp + 0x10]
movq qword [esp + 0x1c0], xmm0
movsd qword [esp + 0x1a8], xmm1
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0x198], xmm2
movsd qword [esp + 0x1a0], xmm1
mov byte [esp + 0x1c8], bl
je 0x562f7b
mov dword [esp + 0x160], 0
mov dword [esp + 0xa0], 4
mov dword [esp + 0xa4], 0
mov dword [esp + 0x16c], 0
mov dword [esp + 0x168], 1
mov dword [esp + 0x188], 1
mov byte [esp + 0x190], 2
mov dword [esp + 0xa8], 2
lea ecx, [esp + 0x10]
lea edx, [esp + 0xa0]
call fcn.0053b540
mov edx, dword [esp + 0x18]
lea esi, [esp + 0x18]
nop word cs:[eax + eax]
mov edi, dword [esp + 0x38]
mov ecx, esi
cmp edi, 5
mov ebx, edi
jb 0x562f53
mov ebx, dword [esp + 0x14]
mov ecx, edx
test ebx, ebx
je 0x562fa3
mov eax, dword [ecx + ebx*8 - 8]
or eax, dword [ecx + ebx*8 - 4]
jne 0x562fa3
cmp edi, 5
lea ecx, [esp + 0x38]
jb 0x562f72
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x14]
test edi, edi
je 0x562f40
dec edi
mov dword [ecx], edi
jmp 0x562f40
mov dword [esp + 0x160], 2
mov dword [esp + 0x1d0], 2
cmp byte [esp + 0x120], bl
jb 0x563094
jmp 0x563336
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x28]
movq xmm0, qword [esp + 0x38]
movsd qword [esp + 0xc0], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0xb8], xmm2
movsd xmm2, qword [esp + 0x10]
movq qword [esp + 0xc8], xmm0
movsd qword [esp + 0xb0], xmm1
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm1
mov edx, 1
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x10]
push eax
call fcn.005451e0
add esp, 4
movsd xmm1, qword [esp + 0x18]
movsd xmm2, qword [esp + 0x28]
movq xmm0, qword [esp + 0x10]
movzx ebx, byte [esp + 0x1c8]
movsd qword [esp + 0x1d8], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0x1e8], xmm2
movsd xmm2, qword [esp + 0x38]
movq qword [esp + 0x1d0], xmm0
movsd qword [esp + 0x1e0], xmm1
movsd xmm1, qword [esp + 0x30]
movsd qword [esp + 0x1f8], xmm2
movsd qword [esp + 0x1f0], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [esp + 0x200], xmm1
cmp byte [esp + 0x120], bl
jae 0x563336
movsd xmm1, qword [esp + 0x110]
movsd xmm2, qword [esp + 0x118]
movq xmm0, qword [esp + 0x120]
movsd xmm3, qword [esp + 0x198]
movsd qword [esp + 0x30], xmm1
movsd xmm1, qword [esp + 0x100]
movsd qword [esp + 0x38], xmm2
movsd xmm2, qword [esp + 0x108]
movq qword [esp + 0x40], xmm0
movsd qword [esp + 0x20], xmm1
movsd xmm1, qword [esp + 0xf8]
movsd qword [esp + 0x28], xmm2
movsd xmm2, qword [esp + 0xf0]
movsd qword [esp + 0xf0], xmm3
movsd qword [esp + 0x18], xmm1
movsd xmm1, qword [esp + 0x1a0]
movsd qword [esp + 0x10], xmm2
movsd xmm2, qword [esp + 0x1a8]
movsd qword [esp + 0xf8], xmm1
movsd xmm1, qword [esp + 0x1b0]
movsd qword [esp + 0x100], xmm2
movsd xmm2, qword [esp + 0x1b8]
movsd qword [esp + 0x108], xmm1
movsd xmm1, qword [esp + 0x1c0]
movsd qword [esp + 0x110], xmm2
movsd xmm2, qword [esp + 0x1c8]
movsd qword [esp + 0x118], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [esp + 0x120], xmm2
movsd xmm2, qword [esp + 0x38]
movsd qword [esp + 0x1c8], xmm1
movsd xmm1, qword [esp + 0x30]
movsd qword [esp + 0x1c0], xmm2
movsd xmm2, qword [esp + 0x28]
movsd qword [esp + 0x1b8], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0x1b0], xmm2
movsd xmm2, qword [esp + 0x10]
movsd qword [esp + 0x1a8], xmm1
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0x198], xmm2
movsd xmm2, qword [esp + 0x188]
movsd qword [esp + 0x1a0], xmm1
movsd xmm1, qword [esp + 0x190]
movsd qword [esp + 0x38], xmm2
movsd xmm2, qword [esp + 0x178]
movsd qword [esp + 0x40], xmm1
movsd xmm1, qword [esp + 0x180]
movsd qword [esp + 0x28], xmm2
movsd xmm2, qword [esp + 0x160]
movsd qword [esp + 0x30], xmm1
movsd xmm1, qword [esp + 0x170]
movsd qword [esp + 0x10], xmm2
movsd xmm2, qword [esp + 0x1f8]
movsd qword [esp + 0x20], xmm1
movsd xmm1, qword [esp + 0x168]
movsd qword [esp + 0x188], xmm2
movsd xmm2, qword [esp + 0x1e8]
movsd qword [esp + 0x18], xmm1
movsd xmm1, qword [esp + 0x200]
movsd qword [esp + 0x178], xmm2
movsd xmm2, qword [esp + 0x1d0]
movsd qword [esp + 0x190], xmm1
movsd xmm1, qword [esp + 0x1f0]
movsd qword [esp + 0x160], xmm2
movsd xmm2, qword [esp + 0x38]
movsd qword [esp + 0x180], xmm1
movsd xmm1, qword [esp + 0x1e0]
movsd qword [esp + 0x1f8], xmm2
movsd xmm2, qword [esp + 0x28]
movsd qword [esp + 0x170], xmm1
movsd xmm1, qword [esp + 0x1d8]
movsd qword [esp + 0x1e8], xmm2
movsd xmm2, qword [esp + 0x10]
movsd qword [esp + 0x168], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [esp + 0x1d0], xmm2
movsd qword [esp + 0x200], xmm1
movsd xmm1, qword [esp + 0x30]
movsd qword [esp + 0x1f0], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0x1e0], xmm1
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0x1d8], xmm1
jmp 0x56334c
jne 0x56334c
test bl, bl
je 0x5642cc
movzx eax, bl
cmp eax, 1
jne 0x5642ef
mov dword [esp + 0xa0], 4
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 2
lea ecx, [esp + 0x10]
lea edx, [esp + 0xa0]
call fcn.0053b540
mov edx, dword [esp + 0x18]
lea esi, [esp + 0x18]
nop word cs:[eax + eax]
nop
mov edi, dword [esp + 0x38]
mov ecx, esi
cmp edi, 5
mov ebx, edi
jb 0x5633a3
mov ebx, dword [esp + 0x14]
mov ecx, edx
test ebx, ebx
je 0x5633cb
mov eax, dword [ecx + ebx*8 - 8]
or eax, dword [ecx + ebx*8 - 4]
jne 0x5633cb
cmp edi, 5
lea ecx, [esp + 0x38]
jb 0x5633c2
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x14]
test edi, edi
je 0x563390
dec edi
mov dword [ecx], edi
jmp 0x563390
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x28]
movq xmm0, qword [esp + 0x38]
movsd qword [esp + 0xc0], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0xb8], xmm2
movsd xmm2, qword [esp + 0x10]
movq qword [esp + 0xc8], xmm0
movsd qword [esp + 0xb0], xmm1
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm1
mov edx, 1
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x318]
push eax
call fcn.005451e0
add esp, 4
mov dword [esp + 0xa0], 4
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 2
lea ecx, [esp + 0x10]
lea edx, [esp + 0xa0]
call fcn.0053b540
mov edx, dword [esp + 0x18]
lea esi, [esp + 0x18]
nop word [eax + eax]
mov edi, dword [esp + 0x38]
mov ecx, esi
cmp edi, 5
mov ebx, edi
jb 0x563493
mov ebx, dword [esp + 0x14]
mov ecx, edx
test ebx, ebx
je 0x5634bb
mov eax, dword [ecx + ebx*8 - 8]
or eax, dword [ecx + ebx*8 - 4]
jne 0x5634bb
cmp edi, 5
lea ecx, [esp + 0x38]
jb 0x5634b2
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x14]
test edi, edi
je 0x563480
dec edi
mov dword [ecx], edi
jmp 0x563480
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x28]
movq xmm0, qword [esp + 0x38]
movsd qword [esp + 0xc0], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0xb8], xmm2
movsd xmm2, qword [esp + 0x10]
movq qword [esp + 0xc8], xmm0
movsd qword [esp + 0xb0], xmm1
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm1
mov edx, 1
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x350]
push eax
call fcn.005451e0
add esp, 4
mov dword [esp + 0xa0], 4
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 2
lea ecx, [esp + 0x10]
lea edx, [esp + 0xa0]
call fcn.0053b540
mov edx, dword [esp + 0x18]
lea esi, [esp + 0x18]
nop word [eax + eax]
mov edi, dword [esp + 0x38]
mov ecx, esi
cmp edi, 5
mov ebx, edi
jb 0x563583
mov ebx, dword [esp + 0x14]
mov ecx, edx
test ebx, ebx
je 0x5635ab
mov eax, dword [ecx + ebx*8 - 8]
or eax, dword [ecx + ebx*8 - 4]
jne 0x5635ab
cmp edi, 5
lea ecx, [esp + 0x38]
jb 0x5635a2
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x14]
test edi, edi
je 0x563570
dec edi
mov dword [ecx], edi
jmp 0x563570
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x28]
movq xmm0, qword [esp + 0x38]
movsd qword [esp + 0xc0], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0xb8], xmm2
movsd xmm2, qword [esp + 0x10]
movq qword [esp + 0xc8], xmm0
movsd qword [esp + 0xb0], xmm1
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm1
mov edx, 1
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x208]
push eax
call fcn.005451e0
add esp, 4
mov dword [esp + 0xa0], 4
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 2
lea ecx, [esp + 0x10]
lea edx, [esp + 0xa0]
call fcn.0053b540
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x18]
nop word [eax + eax]
mov esi, dword [esp + 0x38]
mov ebx, ecx
cmp esi, 5
mov edi, esi
jb 0x563673
mov edi, dword [esp + 0x14]
mov ebx, edx
test edi, edi
je 0x56369b
mov eax, dword [ebx + edi*8 - 8]
or eax, dword [ebx + edi*8 - 4]
jne 0x56369b
cmp esi, 5
lea edi, [esp + 0x38]
jb 0x563692
mov esi, dword [esp + 0x14]
lea edi, [esp + 0x14]
test esi, esi
je 0x563660
dec esi
mov dword [edi], esi
jmp 0x563660
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x28]
movq xmm0, qword [esp + 0x38]
movsd qword [esp + 0xc0], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0xb8], xmm2
movsd xmm2, qword [esp + 0x10]
movq qword [esp + 0xc8], xmm0
movsd qword [esp + 0xb0], xmm1
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm1
mov edx, 1
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x128]
push eax
call fcn.005451e0
add esp, 4
movzx eax, byte [ebp + 0x14]
mov dword [esp + 0xe0], eax
jmp 0x56376d
lea edx, [esp + 0x198]
lea ecx, [esp + 0xf0]
push dword [esp + 0xe0]
lea eax, [esp + 0x12c]
push eax
lea eax, [esp + 0x210]
push eax
lea eax, [esp + 0x35c]
push eax
lea eax, [esp + 0x328]
push eax
lea eax, [esp + 0x1e4]
push eax
lea eax, [esp + 0x178]
push eax
call fcn.00565e60
add esp, 0x1c
mov eax, dword [esp + 0x1c0]
cmp eax, 4
jbe 0x563790
mov ecx, dword [esp + 0x19c]
cmp ecx, 1
ja 0x563799
jmp 0x563900
cmp eax, 2
jb 0x5638fe
lea edx, [esp + 0xf0]
lea eax, [esp + 0x198]
lea ecx, [esp + 0x10]
push eax
call fcn.00565240
add esp, 4
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov eax, edi
or eax, esi
je 0x563720
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x30]
lea edx, [esp + 0x198]
lea ecx, [esp + 0xf0]
mov dword [esp + 0xe8], eax
push eax
mov dword [esp + 0xf0], ebx
push ebx
push dword [esp + 0x14]
mov dword [esp + 0xe4], esi
push esi
mov esi, dword [esp + 0x250]
mov dword [esp + 0xac], edi
push edi
push dword [esp + 0x18]
push dword [esp + 0x18]
push dword [esp + 0x9c]
push esi
lea eax, [esp + 0x14c]
push eax
lea eax, [esp + 0x230]
push eax
lea eax, [esp + 0x37c]
push eax
lea eax, [esp + 0x348]
push eax
call fcn.00565790
add esp, 0x34
cmp byte [ebp + 0x14], 0
je 0x56376d
cmp dword [esp + 0x160], 2
je 0x564f0b
cmp dword [esp + 0x1d0], 2
je 0x564f12
lea edx, [esp + 0x1d0]
lea ecx, [esp + 0x160]
push dword [esp + 0xe8]
push dword [esp + 0xf0]
push dword [esp + 0x14]
push dword [esp + 0xe4]
push dword [esp + 0xac]
push dword [esp + 0x18]
push dword [esp + 0x18]
push dword [esp + 0x9c]
push esi
lea eax, [esp + 0x14c]
push eax
lea eax, [esp + 0x230]
push eax
lea eax, [esp + 0x37c]
push eax
lea eax, [esp + 0x348]
push eax
call fcn.00565790
add esp, 0x34
jmp 0x56376d
mov ecx, eax
mov dl, 1
test ecx, ecx
je 0x5644dc
mov ecx, dword [esp + 0x118]
cmp ecx, 5
jb 0x56391d
mov ecx, dword [esp + 0xf4]
cmp ecx, 2
jb 0x563981
mov al, 1
mov dword [esp + 0x80], eax
lea edx, [esp + 0x198]
lea ecx, [esp + 0xf0]
push dword [esp + 0xe0]
lea eax, [esp + 0x12c]
push eax
lea eax, [esp + 0x210]
push eax
lea eax, [esp + 0x35c]
push eax
lea eax, [esp + 0x328]
push eax
lea eax, [esp + 0x1e4]
push eax
lea eax, [esp + 0x178]
push eax
call fcn.00565e60
add esp, 0x1c
mov eax, dword [esp + 0x1c0]
mov dl, 1
cmp eax, 5
mov ecx, eax
jb 0x56398f
mov ecx, dword [esp + 0x19c]
test ecx, ecx
je 0x5644dc
mov edx, dword [esp + 0x118]
cmp edx, 4
jbe 0x564073
mov edx, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
jmp 0x56407a
cmp dword [edx], 2
jne 0x5639c5
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 4]
lea ecx, [esp + 0x10]
call fcn.00545000
cmp dword [esp + 0x10], 2
jne 0x563cec
mov eax, 0x6df578
jmp 0x564f69
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x28]
movq xmm0, qword [esp + 0x38]
movsd qword [esp + 0xc0], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0xb8], xmm2
movsd xmm2, qword [esp + 0x10]
movq qword [esp + 0xc8], xmm0
movsd qword [esp + 0xb0], xmm1
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm1
mov edx, 1
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x10]
push eax
call fcn.005451e0
add esp, 4
mov ecx, dword [ebp + 8]
movsd xmm0, qword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 4]
mov edx, dword [esp + 0xc]
movsd xmm1, qword [esp + 0x130]
movsd qword [ecx + 0x54], xmm0
movsd xmm0, qword [esp + 0x24]
mov dword [ecx + 0x5c], eax
mov eax, dword [esp + 0x44]
movsd qword [ecx + 0x4c], xmm0
movsd xmm0, qword [esp + 0x1c]
movsd qword [ecx + 0x44], xmm0
movsd xmm0, qword [esp + 0x3c]
mov dword [ecx + 0x6c], eax
movsd qword [ecx + 0x64], xmm0
mov dword [ecx], esi
mov dword [ecx + 4], edx
mov esi, dword [esp]
mov edx, dword [esp + 0x140]
movsd xmm0, qword [esp + 0x128]
mov dword [ecx + 8], esi
mov dword [ecx + 0x24], edx
movsd qword [ecx + 0xc], xmm0
movsd xmm0, qword [esp + 0x138]
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x210]
movsd qword [ecx + 0x14], xmm1
movsd xmm1, qword [esp + 0x208]
movsd qword [ecx + 0x1c], xmm0
mov dword [ecx + 0x28], esi
mov dword [ecx + 0x34], edx
mov esi, dword [esp + 0x18]
movq xmm0, qword [esp + 0x10]
mov edx, dword [esp + 0x38]
movsd qword [ecx + 0x2c], xmm1
movq qword [ecx + 0x38], xmm0
mov dword [ecx + 0x40], esi
mov dword [ecx + 0x60], edx
mov dword [ecx + 0x70], 0
mov dword [ecx + 0x7c], 0
mov dword [ecx + 0x78], 1
mov dword [ecx + 0x98], 1
mov byte [ecx + 0xa0], 2
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 2
jne 0x564e82
jmp 0x564e9b
lea ecx, [esp + 0x10]
call fcn.00545000
cmp dword [esp + 0x10], 2
jne 0x563cec
mov eax, 0x6df598
jmp 0x564f69
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x28]
movq xmm0, qword [esp + 0x38]
movsd qword [esp + 0xc0], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0xb8], xmm2
movsd xmm2, qword [esp + 0x10]
movq qword [esp + 0xc8], xmm0
movsd qword [esp + 0xb0], xmm1
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm1
mov edx, 1
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x10]
push eax
call fcn.005451e0
add esp, 4
movsd xmm0, qword [esp + 0x40]
mov ecx, dword [ebp + 8]
movsd xmm1, qword [esp + 0x18]
mov eax, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov esi, dword [esp]
movsd qword [ecx + 0xa0], xmm0
movsd xmm0, qword [esp + 0x38]
movsd qword [ecx + 0x78], xmm1
movsd xmm1, qword [esp + 0x130]
movsd qword [ecx + 0x98], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [ecx + 0x90], xmm0
movsd xmm0, qword [esp + 0x28]
movsd qword [ecx + 0x88], xmm0
movsd xmm0, qword [esp + 0x20]
movsd qword [ecx + 0x80], xmm0
movsd xmm0, qword [esp + 0x10]
movsd qword [ecx + 0x70], xmm0
movsd xmm0, qword [esp + 0x128]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], esi
mov edx, dword [esp + 0x140]
mov esi, dword [esp + 0x80]
movsd qword [ecx + 0x14], xmm1
movsd qword [ecx + 0xc], xmm0
movsd xmm0, qword [esp + 0x138]
mov dword [ecx + 0x24], edx
mov edx, dword [esp + 0x210]
movsd qword [ecx + 0x1c], xmm0
movq xmm0, qword [esp + 0x208]
mov dword [ecx + 0x28], esi
mov dword [ecx + 0x34], edx
movq qword [ecx + 0x2c], xmm0
mov dword [ecx + 0x38], 0
mov dword [ecx + 0x40], 1
mov dword [ecx + 0x44], 0
mov dword [ecx + 0x60], 1
mov byte [ecx + 0x68], 2
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 2
jne 0x564e82
jmp 0x564e9b
lea ecx, [esp + 0x10]
mov edx, eax
call fcn.00545000
cmp dword [esp + 0x10], 2
je 0x564f64
mov eax, dword [ebp + 8]
movsd xmm2, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x30]
movq xmm0, qword [esp + 0x40]
movsd qword [eax + 0x28], xmm2
movsd qword [eax + 0x20], xmm1
movsd xmm2, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x20]
movq qword [eax + 0x30], xmm0
movsd qword [eax + 0x18], xmm2
movsd qword [eax + 0x10], xmm1
movsd xmm2, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm2
mov dword [eax + 0x38], 2
mov dword [eax + 0x70], 2
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 2
jne 0x564e82
jmp 0x564e9b
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x28]
movq xmm0, qword [esp + 0x38]
movsd qword [esp + 0xc0], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0xb8], xmm2
movsd xmm2, qword [esp + 0x10]
movq qword [esp + 0xc8], xmm0
movsd qword [esp + 0xb0], xmm1
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm1
mov edx, 1
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x10]
push eax
call fcn.005451e0
add esp, 4
mov eax, dword [esp + 0x18]
movsd xmm2, qword [esp + 0x1c]
movsd xmm1, qword [esp + 0x24]
movsd xmm0, qword [esp + 0x10]
mov dword [esp + 0xa0], 4
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 2
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x34]
movsd qword [esp + 0x128], xmm2
movsd qword [esp + 0x130], xmm1
movsd xmm2, qword [esp + 0x2c]
movsd xmm1, qword [esp + 0x3c]
movaps xmmword [esp + 0x240], xmm0
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x38]
movsd qword [esp + 0x138], xmm2
movsd qword [esp + 0x350], xmm1
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x358], eax
lea ecx, [esp + 0x10]
lea edx, [esp + 0xa0]
call fcn.0053b540
mov edx, dword [esp + 0x18]
lea esi, [esp + 0x18]
nop dword [eax]
mov ebx, dword [esp + 0x38]
mov ecx, esi
cmp ebx, 5
mov edi, ebx
jb 0x563e93
mov edi, dword [esp + 0x14]
mov ecx, edx
test edi, edi
je 0x563ebb
mov eax, dword [ecx + edi*8 - 8]
or eax, dword [ecx + edi*8 - 4]
jne 0x563ebb
cmp ebx, 5
lea ecx, [esp + 0x38]
jb 0x563eb2
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0x14]
test ebx, ebx
je 0x563e80
dec ebx
mov dword [ecx], ebx
jmp 0x563e80
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x28]
movsd xmm0, qword [esp + 0x38]
movsd qword [esp + 0xc0], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0xb8], xmm2
movsd xmm2, qword [esp + 0x10]
movsd qword [esp + 0xc8], xmm0
movsd qword [esp + 0xb0], xmm1
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm1
mov edx, 1
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x10]
push eax
call fcn.005451e0
add esp, 4
movsd xmm0, qword [esp + 0x40]
mov ecx, dword [ebp + 8]
movsd xmm1, qword [esp + 0x18]
mov eax, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov esi, dword [esp]
movsd qword [ecx + 0xa0], xmm0
movsd xmm0, qword [esp + 0x38]
movsd qword [ecx + 0x78], xmm1
movsd xmm1, qword [esp + 0x210]
movsd qword [ecx + 0x98], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [ecx + 0x90], xmm0
movsd xmm0, qword [esp + 0x28]
movsd qword [ecx + 0x88], xmm0
movsd xmm0, qword [esp + 0x20]
movsd qword [ecx + 0x80], xmm0
movsd xmm0, qword [esp + 0x10]
movsd qword [ecx + 0x70], xmm0
movsd xmm0, qword [esp + 0x208]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], esi
mov edx, dword [esp + 0x220]
mov esi, dword [esp + 0x80]
movsd qword [ecx + 0x14], xmm1
movsd xmm1, qword [esp + 0x130]
movsd qword [ecx + 0xc], xmm0
movsd xmm0, qword [esp + 0x218]
mov dword [ecx + 0x24], edx
mov edx, dword [esp + 0x320]
movsd qword [ecx + 0x1c], xmm0
movsd xmm0, qword [esp + 0x318]
mov dword [ecx + 0x28], esi
mov dword [ecx + 0x34], edx
mov esi, dword [esp + 0xd8]
mov edx, dword [esp + 0x140]
movsd qword [ecx + 0x2c], xmm0
movaps xmm0, xmmword [esp + 0x240]
movlps qword [ecx + 0x38], xmm0
movsd xmm0, qword [esp + 0x128]
mov dword [ecx + 0x40], esi
mov dword [ecx + 0x5c], edx
mov esi, dword [esp + 0x9c]
mov edx, dword [esp + 0x358]
movsd qword [ecx + 0x4c], xmm1
movsd qword [ecx + 0x44], xmm0
movsd xmm0, qword [esp + 0x138]
movsd qword [ecx + 0x54], xmm0
movq xmm0, qword [esp + 0x350]
mov dword [ecx + 0x60], esi
mov dword [ecx + 0x6c], edx
movq qword [ecx + 0x64], xmm0
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 2
jne 0x564e82
jmp 0x564e9b
lea ecx, [esp + 0xf8]
test edx, edx
je 0x564ec7
cmp eax, 4
jbe 0x564097
mov eax, dword [esp + 0x19c]
mov edx, dword [esp + 0x1a0]
jmp 0x56409e
lea edx, [esp + 0x1a0]
test eax, eax
je 0x564ece
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
cmp byte [ebp + 0x14], 0
mov dword [esp + 4], eax
je 0x564279
mov eax, ecx
mov dword [esp + 0xc], ebx
or eax, edx
je 0x564312
mov eax, 1
xor edi, edi
mov dword [esp + 0xd8], 0
mov dword [esp + 0xe0], 1
mov byte [esp + 0xb], 1
mov dword [esp + 0x80], 0
mov dword [esp + 0x240], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp], ecx
nop dword [eax]
mov dword [esp + 0x264], eax
mov dword [esp + 0x9c], edi
push edx
mov esi, edx
mov dword [esp + 0xe8], edx
push dword [esp + 4]
push dword [esp + 0x14]
push dword [esp + 0x10]
call fcn.0060dc48
add esp, 0x10
mov ecx, eax
mov ebx, eax
mov edi, edx
imul ecx, esi
mov esi, dword [esp]
mul esi
add edx, ecx
mov ecx, edi
imul ecx, esi
mov esi, dword [esp + 0x80]
add ecx, edx
mov edx, dword [esp + 4]
sub edx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xdc], edx
sbb eax, ecx
mov ecx, ebx
imul ecx, dword [esp + 0x240]
mov dword [esp + 0x25c], eax
mov eax, ebx
mul esi
add edx, ecx
mov ecx, edi
imul ecx, esi
mov esi, ebx
add ecx, edx
add eax, dword [esp + 0xe0]
mov dword [esp + 0x260], eax
mov eax, ebx
mov ebx, dword [esp + 0x264]
adc ecx, dword [esp + 0xd8]
imul esi, dword [esp + 0x9c]
mul ebx
imul edi, ebx
add edx, esi
mov esi, dword [esp + 0xdc]
mov dword [esp + 0xdc], ebx
add edi, edx
add eax, dword [esp + 0xec]
mov dword [esp + 0xec], ebx
mov ebx, dword [esp + 0x9c]
mov edx, esi
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0x25c]
adc edi, dword [esp + 0xe8]
xor byte [esp + 0xb], 1
mov dword [esp + 0xe8], ebx
or edx, eax
mov edx, dword [esp]
mov dword [esp], esi
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 0xc], edx
mov edx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x240]
mov dword [esp + 0x240], ecx
mov ecx, ebx
mov esi, eax
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x260]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x258]
jne 0x564120
jmp 0x564331
mov esi, ecx
mov al, 1
or esi, edx
mov dword [esp + 0x80], eax
je 0x5644a4
mov eax, dword [esp + 4]
mov esi, edx
mov edi, ecx
push edx
push ecx
push ebx
push eax
call fcn.00625024
add esp, 0x10
mov ecx, eax
or eax, edx
mov eax, edi
mov ebx, esi
jne 0x564290
mov ebx, esi
mov dword [esp + 4], edi
mov eax, dword [esp + 0x118]
cmp eax, 4
ja 0x5644b4
lea ecx, [esp + 0xf8]
jmp 0x5644c2
mov edi, dword [esp + 0x1c0]
cmp edi, 4
jbe 0x564624
mov edi, dword [esp + 0x19c]
mov eax, dword [esp + 0x1a0]
jmp 0x56462b
mov edi, dword [esp + 0x118]
cmp edi, 4
jbe 0x5646bb
mov edi, dword [esp + 0xf4]
mov eax, dword [esp + 0xf8]
jmp 0x5646c2
xor ecx, ecx
xor esi, esi
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe4], 1
mov byte [esp + 0xb], 1
mov eax, dword [esp + 0x150]
mov edx, dword [esp + 0xe4]
mov dword [esp], ecx
cmp eax, 5
jb 0x56435b
mov edi, dword [esp + 0x12c]
test edi, edi
je 0x56438f
lea ecx, [esp + 0x12c]
jmp 0x564368
test eax, eax
je 0x56438f
lea ecx, [esp + 0x150]
mov edi, eax
cmp edi, 2
jb 0x56437a
mov dword [ecx], 1
mov eax, dword [esp + 0x150]
cmp eax, 4
jbe 0x5643ce
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x130]
jmp 0x5643d5
mov al, 1
mov dword [esp + 0x80], eax
lea ecx, [esp + 0x128]
push 1
push esi
call fcn.0053b200
add esp, 8
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x230]
cmp eax, 5
jb 0x5643f2
mov edx, dword [esp + 0x20c]
test edx, edx
je 0x564429
lea ecx, [esp + 0x20c]
jmp 0x5643ff
lea ecx, [esp + 0x130]
test eax, eax
je 0x564eeb
mov ebx, dword [esp + 0xc]
mov dword [ecx], edx
mov dword [ecx + 4], esi
mov eax, dword [esp + 0x230]
cmp eax, 5
jae 0x5643ba
test eax, eax
je 0x564429
lea ecx, [esp + 0x230]
mov edx, eax
cmp edx, 2
jb 0x564411
mov dword [ecx], 1
mov eax, dword [esp + 0x230]
mov edx, dword [esp]
cmp eax, 4
jbe 0x564450
mov eax, dword [esp + 0x20c]
mov ecx, dword [esp + 0x210]
jmp 0x564457
mov al, 1
mov dword [esp + 0x80], eax
mov edx, dword [esp + 0xdc]
lea ecx, [esp + 0x208]
push 1
push dword [esp + 4]
call fcn.0053b200
add esp, 8
jmp 0x56446b
lea ecx, [esp + 0x210]
test eax, eax
je 0x564eeb
mov eax, dword [esp + 0xdc]
mov dword [ecx + 4], edx
mov dword [ecx], eax
movzx ecx, byte [esp + 0xb]
mov edx, ecx
mov eax, ecx
not dl
and al, 1
and dl, 1
add al, al
add dl, dl
cmp dword [esp + 0x160], 2
mov byte [esp + 0x158], al
mov byte [esp + 0x238], dl
jne 0x5645af
mov al, 1
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x118]
cmp eax, 4
jbe 0x5642c0
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
test eax, eax
je 0x564ed5
mov eax, dword [esp + 4]
mov dword [ecx + 4], ebx
mov dword [ecx], eax
mov eax, dword [esp + 0x80]
mov edx, eax
mov esi, dword [esp + 0xf8]
mov byte [esp], dl
lea edx, [esp + 0xf8]
nop dword [eax]
mov edi, dword [esp + 0x118]
mov ebx, edx
cmp edi, 5
mov eax, edi
jb 0x564509
mov eax, dword [esp + 0xf4]
mov ebx, esi
test eax, eax
je 0x56453a
mov ecx, dword [ebx + eax*8 - 8]
or ecx, dword [ebx + eax*8 - 4]
jne 0x56453a
cmp edi, 5
lea eax, [esp + 0x118]
jb 0x564531
mov edi, dword [esp + 0xf4]
lea eax, [esp + 0xf4]
test edi, edi
je 0x5644f0
dec edi
mov dword [eax], edi
jmp 0x5644f0
cmp edi, 5
jb 0x56458f
mov edi, dword [esp + 0xf4]
movzx ebx, byte [esp]
test edi, edi
jne 0x564597
mov byte [esp + 0x120], 1
cmp dword [esp + 0x160], 2
je 0x5645a1
movzx eax, byte [esp + 0x2b8]
mov cl, 1
mov dword [esp + 4], ecx
cmp al, 1
je 0x5645ea
movzx ecx, byte [esp + 0x190]
test ecx, ecx
je 0x5645da
cmp ecx, 1
je 0x5645ea
mov cl, 2
test al, al
mov dword [esp + 4], ecx
jne 0x5645ea
jmp 0x5645e2
movzx ebx, byte [esp]
test edi, edi
je 0x56454e
cmp dword [esp + 0x160], 2
jne 0x564560
mov eax, 2
movd xmm2, eax
jmp 0x564be9
movzx eax, byte [esp + 0x190]
test eax, eax
je 0x564752
mov dl, 1
cmp eax, 1
je 0x56475b
mov dl, 2
test cl, 1
je 0x564759
jmp 0x56475b
test al, al
je 0x5649c2
mov dword [esp + 4], 0
mov eax, dword [esp + 0x2b0]
cmp eax, 4
jbe 0x5649d8
mov eax, dword [esp + 0x28c]
mov ecx, dword [esp + 0x290]
mov edx, dword [esp + 0x188]
cmp edx, 4
ja 0x5649ef
lea esi, [esp + 0x168]
jmp 0x5649fd
lea eax, [esp + 0x1a0]
mov edx, dword [esp + 0x118]
mov dword [esp], eax
cmp edx, 4
jbe 0x56464a
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0xf8]
jmp 0x564651
lea eax, [esp + 0xf8]
cmp edi, edx
mov dword [esp + 4], eax
jb 0x563094
ja 0x56334c
shl edi, 3
shl edx, 3
test edi, edi
je 0x56334c
test edx, edx
je 0x56334c
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov dword [esp + 0x80], edi
mov ebx, dword [eax + edi - 8]
mov eax, dword [eax + edi - 4]
mov esi, dword [ecx + edx - 8]
mov ecx, dword [ecx + edx - 4]
cmp ebx, esi
mov edi, eax
sbb edi, ecx
mov edi, dword [esp + 0x80]
jb 0x563094
add edi, 0xfffffff8
add edx, 0xfffffff8
cmp esi, ebx
sbb ecx, eax
jae 0x564669
jmp 0x56334c
lea eax, [esp + 0xf8]
mov edx, dword [esp + 0x1c0]
mov dword [esp], eax
cmp edx, 4
jbe 0x5646e1
mov edx, dword [esp + 0x19c]
mov eax, dword [esp + 0x1a0]
jmp 0x5646e8
lea eax, [esp + 0x1a0]
cmp edi, edx
mov dword [esp + 4], eax
jb 0x563094
ja 0x56334c
shl edi, 3
shl edx, 3
test edi, edi
je 0x56334c
test edx, edx
je 0x56334c
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov dword [esp + 0x80], edi
mov ebx, dword [eax + edi - 8]
mov eax, dword [eax + edi - 4]
mov esi, dword [ecx + edx - 8]
mov ecx, dword [ecx + edx - 4]
cmp ebx, esi
mov edi, eax
sbb edi, ecx
mov edi, dword [esp + 0x80]
jb 0x563094
add edi, 0xfffffff8
add edx, 0xfffffff8
cmp esi, ebx
sbb ecx, eax
jae 0x564700
jmp 0x56334c
mov dl, 2
test cl, 1
je 0x56475b
xor edx, edx
mov eax, dword [esp + 0x150]
mov dword [esp], edx
cmp eax, 4
jbe 0x56477a
mov eax, dword [esp + 0x12c]
mov edi, dword [esp + 0x130]
jmp 0x564781
lea edi, [esp + 0x130]
mov edx, dword [esp + 0x188]
cmp edx, 4
jbe 0x56479d
mov edx, dword [esp + 0x164]
mov esi, dword [esp + 0x168]
jmp 0x5647a4
lea esi, [esp + 0x168]
mov cl, 1
mov dword [esp + 0x80], ecx
push edx
push esi
push eax
push edi
lea eax, [esp + 0xb0]
push eax
call fcn.0056c8b0
add esp, 0x14
movzx edx, byte [esp]
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x10]
push eax
call fcn.005451e0
add esp, 4
mov eax, dword [esp + 0x150]
cmp eax, 5
jb 0x5647fa
shl eax, 3
push 8
push eax
push dword [esp + 0x138]
call fcn.004ed020
add esp, 0xc
movsd xmm2, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x30]
mov eax, dword [esp + 0x1d0]
movq xmm0, qword [esp + 0x40]
movsd qword [esp + 0x150], xmm2
movsd qword [esp + 0x148], xmm1
movsd xmm2, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x20]
cmp eax, 2
movq qword [esp + 0x158], xmm0
movsd qword [esp + 0x140], xmm2
movsd qword [esp + 0x138], xmm1
movsd xmm2, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0x130], xmm1
movsd qword [esp + 0x128], xmm2
je 0x564f7b
movsd xmm1, qword [esp + 0x1dc]
mov dword [esp + 0x10], eax
movsd xmm2, qword [esp + 0x1e4]
mov eax, dword [esp + 0x204]
movq xmm0, qword [esp + 0x1d4]
mov dword [esp + 0x80], 0
movsd qword [esp + 0x1c], xmm1
movsd xmm1, qword [esp + 0x1ec]
movsd qword [esp + 0x24], xmm2
movsd xmm2, qword [esp + 0x1f4]
movq qword [esp + 0x14], xmm0
mov dword [esp + 0x44], eax
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [esp + 0x1fc]
movsd qword [esp + 0x34], xmm2
movsd qword [esp + 0x3c], xmm1
lea esi, [esp + 0x208]
lea edx, [esp + 0x10]
mov ecx, esi
call fcn.0056e240
mov dword [esp + 0x80], 0
lea edx, [esp + 0x128]
lea ecx, [esp + 0x10]
push esi
call fcn.00541520
add esp, 4
mov eax, dword [esp + 0x188]
cmp eax, 5
jb 0x564939
shl eax, 3
push 8
push eax
push dword [esp + 0x170]
call fcn.004ed020
add esp, 0xc
movsd xmm2, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x30]
movq xmm0, qword [esp + 0x40]
mov dword [esp + 0x80], 0
movsd qword [esp + 0x188], xmm2
movsd qword [esp + 0x180], xmm1
movsd xmm2, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x20]
movq qword [esp + 0x190], xmm0
movsd qword [esp + 0x178], xmm2
movsd qword [esp + 0x170], xmm1
movsd xmm2, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0x168], xmm1
movsd qword [esp + 0x160], xmm2
mov eax, dword [esp + 0x118]
cmp eax, 4
ja 0x5644b4
jmp 0x5642c0
mov al, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2b0]
cmp eax, 4
ja 0x5645fa
lea ecx, [esp + 0x290]
mov edx, dword [esp + 0x188]
cmp edx, 4
jbe 0x564618
mov edx, dword [esp + 0x164]
mov esi, dword [esp + 0x168]
push edx
push esi
push eax
push ecx
lea eax, [esp + 0xb0]
push eax
movzx ebx, byte [esp + 0x14]
mov eax, ebx
mov dword [esp + 0x94], eax
call fcn.0056c8b0
add esp, 0x14
movzx edx, byte [esp + 4]
lea esi, [esp + 0x10]
lea eax, [esp + 0xa0]
mov ecx, esi
push eax
mov eax, ebx
mov dword [esp + 0x84], eax
call fcn.005451e0
add esp, 4
lea edx, [esp + 0xf0]
lea ecx, [esp + 0xa0]
push esi
mov eax, ebx
mov dword [esp + 0x84], eax
call fcn.00542f70
add esp, 4
lea eax, [esp + 0x2e0]
lea edx, [esp + 0xa0]
lea ecx, [esp + 0x10]
push eax
call fcn.00543fd0
add esp, 4
mov eax, dword [esp + 0x34]
movsd xmm1, qword [esp + 0x24]
movq xmm2, qword [esp + 0x10]
movsd xmm0, qword [esp + 0x1c]
movsd xmm3, qword [esp + 0x2c]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
movzx ebx, byte [esp]
mov dword [esp + 0x280], eax
mov eax, dword [esp + 0x44]
movsd qword [esp + 0x270], xmm1
movsd xmm1, qword [esp + 0x3c]
movsd qword [esp + 0x268], xmm0
movsd qword [esp + 0x278], xmm3
movdqa xmmword [esp + 0x80], xmm2
mov dword [esp + 0x2d8], eax
mov eax, dword [esp + 0x70]
movsd qword [esp + 0x2d0], xmm1
cmp eax, 5
jb 0x564b0f
shl eax, 3
push 8
push eax
push dword [esp + 0x58]
call fcn.004ed020
movdqa xmm2, xmmword [esp + 0x8c]
add esp, 0xc
mov eax, dword [esp + 0x280]
movsd xmm1, qword [esp + 0x270]
movsd xmm0, qword [esp + 0x268]
movsd xmm3, qword [esp + 0x278]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2d8]
movsd qword [esp + 0x18], xmm1
movsd xmm1, qword [esp + 0x2d0]
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 0x20], xmm3
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0xc8]
movsd qword [esp + 0x2c0], xmm1
cmp eax, 5
jb 0x564b91
shl eax, 3
push 8
push eax
push dword [esp + 0xb0]
call fcn.004ed020
movdqa xmm2, xmmword [esp + 0x8c]
add esp, 0xc
movsd xmm1, qword [esp + 0x18]
mov eax, dword [esp + 0x28]
movq xmm0, qword [esp + 0x10]
movsd xmm3, qword [esp + 0x20]
movsd qword [esp + 0xa8], xmm1
mov dword [esp + 0xb8], eax
movsd xmm1, qword [esp + 0x2c0]
mov eax, dword [esp + 0x2c8]
movq qword [esp + 0xa0], xmm0
movsd qword [esp + 0xb0], xmm3
movsd qword [esp + 0x268], xmm1
mov dword [esp + 0x270], eax
mov ecx, dword [ebp + 8]
movsd xmm1, qword [esp + 0x110]
movsd xmm3, qword [esp + 0x118]
movsd xmm0, qword [esp + 0x120]
movsd xmm4, qword [esp + 0xf0]
mov eax, dword [esp + 0xb8]
movsd qword [ecx + 0x20], xmm1
movsd xmm1, qword [esp + 0x100]
movsd qword [ecx + 0x28], xmm3
movsd xmm3, qword [esp + 0x108]
movsd qword [ecx], xmm4
movsd qword [ecx + 0x30], xmm0
movsd xmm4, qword [esp + 0xa0]
movsd qword [ecx + 0x10], xmm1
movsd xmm1, qword [esp + 0xf8]
movsd qword [ecx + 0x18], xmm3
movsd xmm3, qword [esp + 0x160]
movsd qword [ecx + 8], xmm1
movsd xmm1, qword [esp + 0x168]
movsd qword [ecx + 0x38], xmm3
movsd xmm3, qword [esp + 0x178]
movsd qword [ecx + 0x40], xmm1
movsd xmm1, qword [esp + 0x170]
movsd qword [ecx + 0x50], xmm3
movsd xmm3, qword [esp + 0x188]
movsd qword [ecx + 0x48], xmm1
movsd xmm1, qword [esp + 0x180]
movsd qword [ecx + 0x60], xmm3
movsd xmm3, qword [esp + 0xb0]
movsd qword [ecx + 0x58], xmm1
movsd xmm1, qword [esp + 0x190]
movsd qword [ecx + 0x68], xmm1
movsd xmm1, qword [esp + 0xa8]
mov dword [ecx + 0x94], eax
mov eax, dword [esp + 0x270]
movsd qword [ecx + 0x7c], xmm4
movsd qword [ecx + 0x8c], xmm3
movsd qword [ecx + 0x84], xmm1
mov dword [ecx + 0xa4], eax
mov eax, dword [esp + 0x150]
movsd xmm1, qword [esp + 0x268]
cmp eax, 5
movsd qword [ecx + 0x9c], xmm1
movq qword [ecx + 0x70], xmm2
mov dword [ecx + 0x78], esi
mov dword [ecx + 0x98], edi
jb 0x564d78
shl eax, 3
push 8
push eax
push dword [esp + 0x138]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x230]
cmp eax, 5
jae 0x564d84
mov eax, dword [esp + 0x378]
cmp eax, 5
jb 0x564da5
shl eax, 3
push 8
push eax
push dword [esp + 0x360]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x340]
cmp eax, 5
jae 0x564db1
test bl, bl
jne 0x564dca
jmp 0x564df5
mov eax, dword [esp + 0x230]
cmp eax, 5
jb 0x564d45
shl eax, 3
push 8
push eax
push dword [esp + 0x218]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x378]
cmp eax, 5
jae 0x564d51
mov eax, dword [esp + 0x340]
cmp eax, 5
jb 0x564d72
shl eax, 3
push 8
push eax
push dword [esp + 0x328]
call fcn.004ed020
add esp, 0xc
test bl, bl
je 0x564df5
cmp dword [esp + 0x1d0], 2
je 0x564df5
mov eax, dword [esp + 0x1f8]
cmp eax, 5
jb 0x564df5
shl eax, 3
push 8
push eax
push dword [esp + 0x1e0]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x1c0]
cmp eax, 5
jb 0x564e4d
shl eax, 3
push 8
push eax
push dword [esp + 0x1a8]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x308]
cmp eax, 5
jae 0x564e59
mov eax, dword [esp + 0x2b0]
cmp eax, 5
jb 0x564e7a
shl eax, 3
push 8
push eax
push dword [esp + 0x298]
call fcn.004ed020
add esp, 0xc
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 2
jne 0x564e82
jmp 0x564e9b
mov eax, dword [esp + 0x308]
cmp eax, 5
jb 0x564e22
shl eax, 3
push 8
push eax
push dword [esp + 0x2f0]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x2b0]
cmp eax, 5
jae 0x564e2e
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 2
je 0x564e9b
mov eax, dword [ecx + 0x28]
cmp eax, 5
jb 0x564e9b
shl eax, 3
push 8
push eax
push dword [ecx + 8]
call fcn.004ed020
add esp, 0xc
mov ecx, dword [ebp + 0xc]
cmp dword [ecx], 2
je 0x564ebc
mov eax, dword [ecx + 0x28]
cmp eax, 5
jb 0x564ebc
shl eax, 3
push 8
push eax
push dword [ecx + 8]
call fcn.004ed020
add esp, 0xc
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 0x6df5d8
jmp 0x564ef0
mov eax, 0x6df5e8
jmp 0x564ef0
push 0x6df608
push 0
push 0
call fcn.004fac30
add esp, 0xc
jmp 0x564f9a
mov eax, 0x6deb70
mov cl, 1
mov dword [esp + 0x80], ecx
push eax
push 0
push 0
call fcn.004fac30
add esp, 0xc
jmp 0x564f9a
mov eax, 0x6df618
jmp 0x564f17
mov eax, 0x6df628
mov cl, 1
mov dword [esp + 0x80], ecx
push eax
push 0x2b
push 0x6dcf4e
call fcn.004faaf0
add esp, 0xc
jmp 0x564f9a
mov eax, 0x6df5b8
jmp 0x564f69
push 0x6df5c8
push 0x2b
push 0x6dcf4e
call fcn.004faaf0
add esp, 0xc
jmp 0x564f9a
mov eax, 0x6df588
jmp 0x564f69
mov eax, 0x6df5a8
jmp 0x564f69
mov eax, 0x6df568
jmp 0x564f69
mov eax, 0x6df558
push eax
push 0x2b
push 0x6dcf4e
call fcn.004faaf0
add esp, 0xc
jmp 0x564f9a
mov dword [esp + 0x80], 0
push 0x6df5f8
push 0x2b
push 0x6dcf4e
call fcn.004faaf0
add esp, 0xc
ud2