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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x580
mov edi, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ebx, dword [edi + 8]
cmp ebx, 1
ja 0x5f62a2
test ebx, ebx
je 0x5f48cb
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 8]
mov edi, 1
mov esi, dword [ecx + 4]
mov dword [eax + 4], 5
mov dword [eax], 2
jmp 0x5f4abf
mov dword [esp + 0x3d0], 0
mov dword [esp + 0x3dc], 0
mov dword [esp + 0x3d8], 2
mov dword [esp + 0x3f8], 1
lea edx, [esp + 0x3d0]
lea ecx, [esp + 0x120]
push 0x10
call fcn.005e89e0
add esp, 4
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 0x28]
cmp esi, 4
jbe 0x5f4935
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x148]
cmp edx, 4
ja 0x5f4946
lea edi, [esp + 0x128]
jmp 0x5f4954
add eax, 8
mov ecx, esi
mov edx, dword [esp + 0x148]
cmp edx, 4
jbe 0x5f492c
mov edx, dword [esp + 0x124]
mov edi, dword [esp + 0x128]
push edx
push edi
push ecx
push eax
call fcn.0055db80
add esp, 0x10
inc al
cmp al, 2
jb 0x5f49fc
mov eax, dword [esp + 0x148]
cmp eax, 5
jb 0x5f498b
shl eax, 3
push 8
push eax
push dword [esp + 0x130]
call fcn.004ed020
add esp, 0xc
lea edx, [esp + 0x3d0]
lea ecx, [esp + 0x120]
push 0x100
call fcn.005e89e0
add esp, 4
mov eax, dword [ebp + 0x10]
cmp esi, 4
jbe 0x5f49c9
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x148]
cmp edx, 4
ja 0x5f49da
lea edi, [esp + 0x128]
jmp 0x5f49e8
add eax, 8
mov ecx, esi
mov edx, dword [esp + 0x148]
cmp edx, 4
jbe 0x5f49c0
mov edx, dword [esp + 0x124]
mov edi, dword [esp + 0x128]
push edx
push edi
push ecx
push eax
call fcn.0055db80
add esp, 0x10
cmp al, 2
jae 0x5f4b87
mov eax, dword [esp + 0x148]
cmp eax, 5
jb 0x5f4a1d
shl eax, 3
push 8
push eax
push dword [esp + 0x130]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x3f8]
cmp eax, 5
jb 0x5f4a3e
shl eax, 3
push 8
push eax
push dword [esp + 0x3e0]
call fcn.004ed020
add esp, 0xc
mov edi, 0x13
mov eax, dword [esp + 0x368]
mov ecx, dword [ebp + 8]
movq xmm0, qword [esp + 0x360]
movq xmm1, qword [esp + 0x350]
movq xmm2, qword [esp + 0x358]
mov dword [esp + 0x348], eax
mov dword [ecx + 0x24], eax
mov eax, dword [ebp + 0x18]
movq qword [ecx + 0x1c], xmm0
movq qword [ecx + 0x14], xmm2
movq qword [ecx + 0xc], xmm1
mov dword [ecx + 4], edi
mov dword [ecx + 8], esi
movups xmmword [ecx + 0x28], xmm3
mov dword [ecx + 0x38], edx
mov dword [ecx + 0x3c], ebx
movq qword [esp + 0x340], xmm0
movq qword [esp + 0x338], xmm2
movq qword [esp + 0x330], xmm1
mov dword [ecx], 2
mov edi, dword [eax + 8]
mov esi, dword [eax + 4]
test edi, edi
je 0x5f4af4
mov ebx, esi
jmp 0x5f4ad6
add ebx, 0x30
dec edi
je 0x5f4af1
mov eax, dword [ebx + 0x28]
cmp eax, 5
jb 0x5f4ad0
shl eax, 3
push 8
push eax
push dword [ebx + 8]
call fcn.004ed020
add esp, 0xc
jmp 0x5f4ad0
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x5f4b0c
shl eax, 4
lea eax, [eax + eax*2]
push 8
push eax
push esi
call fcn.004ed020
add esp, 0xc
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
mov eax, dword [ecx + 0x28]
cmp eax, 5
jb 0x5f4b46
shl eax, 3
push 8
push eax
push dword [ecx + 8]
call fcn.004ed020
add esp, 0xc
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x28]
cmp eax, 5
jae 0x5f4b51
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x28]
cmp eax, 5
jae 0x5f4b71
jmp 0x5f644e
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x28]
cmp eax, 5
jb 0x5f4b36
shl eax, 3
push 8
push eax
push dword [ecx + 8]
call fcn.004ed020
add esp, 0xc
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x28]
cmp eax, 5
jb 0x5f644e
shl eax, 3
push 8
push eax
push dword [ecx + 8]
call fcn.004ed020
add esp, 0xc
jmp 0x5f644e
mov eax, dword [esp + 0x148]
cmp eax, 5
jb 0x5f4ba8
shl eax, 3
push 8
push eax
push dword [esp + 0x130]
call fcn.004ed020
add esp, 0xc
lea ecx, [esp + 0xc0]
call fcn.005e8640
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x28]
cmp ecx, 4
mov dword [esp + 0x20], ecx
jbe 0x5f4bdf
mov ecx, dword [eax + 4]
mov edi, dword [eax + 8]
mov edx, dword [ebp + 0x10]
cmp esi, 4
mov dword [esp + 0x2cc], ebx
ja 0x5f4bf1
add edx, 8
mov ebx, esi
jmp 0x5f4bf7
lea edi, [eax + 8]
mov edx, dword [ebp + 0x10]
cmp esi, 4
mov dword [esp + 0x2cc], ebx
jbe 0x5f4bd8
mov ebx, dword [edx + 4]
mov edx, dword [edx + 8]
mov al, 1
mov dword [esp + 0x10], eax
push ebx
push edx
push ecx
push edi
lea edi, [esp + 0x130]
push edi
call fcn.0056c8b0
add esp, 0x14
lea ebx, [esp + 0xc0]
lea eax, [esp + 0x88]
push ebx
push edi
push eax
call fcn.0054c460
add esp, 0xc
mov ecx, dword [ebp + 0xc]
mov edi, dword [esp + 0x20]
mov eax, dword [ecx + 0x28]
cmp eax, 4
mov dword [esp + 0xc], eax
jbe 0x5f4c45
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 8]
jmp 0x5f4c48
lea edx, [ecx + 8]
lea ecx, [esp + 0x120]
push eax
call fcn.005e4bc0
add esp, 4
movsd xmm1, qword [esp + 0x140]
movsd xmm2, qword [esp + 0x138]
movq xmm0, qword [esp + 0x148]
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [esp + 0x130]
movsd qword [esp + 0x40], xmm2
movq xmm2, qword [esp + 0x120]
movq qword [esp + 0x50], xmm0
movsd qword [esp + 0x38], xmm1
movq xmm1, qword [esp + 0x128]
movq qword [esp + 0x28], xmm2
movq qword [esp + 0x30], xmm1
lea eax, [esp + 0x268]
lea ecx, [esp + 0x28]
push ebx
push ecx
push eax
call fcn.0054c460
add esp, 0xc
mov eax, dword [ebp + 0x14]
cmp edi, 4
jbe 0x5f4ce3
mov edi, dword [eax + 4]
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 0x10]
cmp esi, 4
ja 0x5f4cee
add ecx, 8
jmp 0x5f4cf4
add eax, 8
mov ecx, dword [ebp + 0x10]
cmp esi, 4
jbe 0x5f4cde
mov esi, dword [ecx + 4]
mov ecx, dword [ecx + 8]
push esi
push ecx
push edi
push eax
lea edi, [esp + 0x130]
push edi
call fcn.0056c8b0
add esp, 0x14
lea esi, [esp + 0x28]
push ebx
push edi
push esi
call fcn.0054c460
add esp, 0xc
lea edx, [esp + 0x268]
lea ecx, [esp + 0x120]
push esi
call fcn.005e8170
add esp, 4
mov eax, dword [esp + 0xb0]
cmp eax, 4
jbe 0x5f4d5d
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x148]
cmp edx, 4
ja 0x5f4d70
lea edi, [esp + 0x128]
jmp 0x5f4d7e
lea ecx, [esp + 0x90]
mov edx, dword [esp + 0x148]
cmp edx, 4
jbe 0x5f4d54
mov edx, dword [esp + 0x124]
mov edi, dword [esp + 0x128]
lea esi, [esp + 0x298]
push edx
push edi
push eax
push ecx
push esi
call fcn.0056c8b0
add esp, 0x14
mov eax, dword [esp + 0xb0]
cmp eax, 5
jb 0x5f4db3
shl eax, 3
push 8
push eax
push dword [esp + 0x98]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x148]
cmp eax, 5
jb 0x5f4dd4
shl eax, 3
push 8
push eax
push dword [esp + 0x130]
call fcn.004ed020
add esp, 0xc
movsd xmm1, qword [esp + 0x2a0]
movsd xmm2, qword [esp + 0x2a8]
mov eax, dword [esp + 0x50]
movq xmm0, qword [esp + 0x298]
movsd qword [esp + 0x408], xmm1
movsd xmm1, qword [esp + 0x2b0]
movsd qword [esp + 0x410], xmm2
movq xmm2, qword [esp + 0x2b8]
cmp eax, 5
movq qword [esp + 0x400], xmm0
movsd qword [esp + 0x418], xmm1
movq xmm1, qword [esp + 0x2c0]
movq qword [esp + 0x420], xmm2
movq qword [esp + 0x428], xmm1
jb 0x5f4e5b
shl eax, 3
push 8
push eax
push dword [esp + 0x38]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x290]
cmp eax, 5
jb 0x5f4e7c
shl eax, 3
push 8
push eax
push dword [esp + 0x278]
call fcn.004ed020
add esp, 0xc
mov bl, 1
lea eax, [esp + 0x400]
push dword [ebp + 0xc]
push eax
lea eax, [esp + 0x128]
push eax
call fcn.0055e1b0
add esp, 0xc
mov eax, dword [esp + 0x144]
movsd xmm2, qword [esp + 0x134]
movsd xmm0, qword [esp + 0x12c]
movsd xmm1, qword [esp + 0x13c]
mov esi, dword [esp + 0x120]
mov edi, dword [esp + 0x124]
mov ebx, dword [esp + 0x128]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x178]
movsd qword [esp + 0x30], xmm2
movq xmm2, qword [esp + 0x148]
movsd qword [esp + 0x28], xmm0
movsd qword [esp + 0x38], xmm1
cmp eax, 5
jb 0x5f4f1c
shl eax, 3
push 8
push eax
push dword [esp + 0x160]
movdqa xmmword [esp + 0x1c], xmm2
call fcn.004ed020
movdqa xmm2, xmmword [esp + 0x1c]
add esp, 0xc
movsd xmm1, qword [esp + 0x30]
mov eax, dword [esp + 0x40]
movq xmm0, qword [esp + 0x28]
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0xf8]
mov dword [esp + 0x20], ecx
movsd qword [esp + 0x104], xmm1
movq xmm1, qword [esp + 0x38]
mov dword [esp + 0x114], eax
movq qword [esp + 0xfc], xmm0
movd eax, xmm2
cmp eax, 5
cmovae eax, edi
cmovae ecx, ebx
movq qword [esp + 0x10c], xmm1
mov dword [esp + 0xf0], esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf8], ebx
movq qword [esp + 0x118], xmm2
cmp esi, 4
jbe 0x5f4f9e
mov esi, dword [edx + 4]
mov edx, dword [edx + 8]
jmp 0x5f4fa1
add edx, 8
mov bl, 1
mov dword [esp + 0x10], ebx
push esi
push edx
push eax
push ecx
lea edi, [esp + 0x130]
push edi
call fcn.0056c8b0
add esp, 0x14
lea esi, [esp + 0x400]
push edi
push esi
lea eax, [esp + 0x30]
push eax
call fcn.0054c6b0
add esp, 0xc
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x38]
mov ecx, dword [esp + 0xc]
movq xmm0, qword [esp + 0x28]
movsd qword [esp + 0x438], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [esp + 0x440], xmm2
movq xmm2, qword [esp + 0x48]
cmp ecx, 4
movq qword [esp + 0x430], xmm0
movsd qword [esp + 0x448], xmm1
movq xmm1, qword [esp + 0x50]
movq qword [esp + 0x450], xmm2
movq qword [esp + 0x458], xmm1
jbe 0x5f503f
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 8]
jmp 0x5f5047
mov eax, dword [ebp + 0xc]
lea edx, [eax + 8]
mov eax, ecx
mov cl, 1
mov dword [esp + 0x10], ecx
lea esi, [esp + 0x120]
mov ecx, esi
push eax
call fcn.005e4bc0
add esp, 4
movsd xmm1, qword [esp + 0x140]
movsd xmm2, qword [esp + 0x138]
movq xmm0, qword [esp + 0x148]
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [esp + 0x130]
movsd qword [esp + 0x40], xmm2
movq xmm2, qword [esp + 0x120]
movq qword [esp + 0x50], xmm0
movsd qword [esp + 0x38], xmm1
movq xmm1, qword [esp + 0x128]
movq qword [esp + 0x28], xmm2
movq qword [esp + 0x30], xmm1
lea eax, [esp + 0x430]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x270]
push eax
call fcn.0054c460
add esp, 0xc
mov eax, dword [esp + 0x118]
cmp eax, 5
mov ecx, eax
jb 0x5f50eb
mov ecx, dword [esp + 0xf4]
mov edi, dword [esp + 0xe8]
cmp edi, 5
jb 0x5f510b
mov edi, dword [esp + 0xc4]
cmp ecx, edi
jae 0x5f5140
mov edx, dword [esp + 0xc8]
jmp 0x5f5116
cmp ecx, edi
jae 0x5f5140
lea edx, [esp + 0xc8]
lea ebx, [esp + 0x120]
mov ecx, ebx
push edi
call fcn.005e4bc0
add esp, 4
lea eax, [esp + 0xf0]
push eax
push ebx
lea eax, [esp + 0x30]
push eax
call fcn.0054bec0
add esp, 0xc
jmp 0x5f5182
cmp eax, 5
lea edx, [esp + 0xf8]
jb 0x5f515a
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0xf8]
lea ebx, [esp + 0x120]
mov ecx, ebx
push eax
call fcn.005e4bc0
add esp, 4
lea eax, [esp + 0xc0]
push eax
push ebx
lea eax, [esp + 0x30]
push eax
call fcn.0054bec0
add esp, 0xc
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x26c]
push eax
push esi
call fcn.0055e1b0
add esp, 0xc
movsd xmm1, qword [esp + 0x164]
mov eax, dword [esp + 0x148]
movsd xmm0, qword [esp + 0x15c]
movsd xmm2, qword [esp + 0x16c]
mov ecx, dword [esp + 0x174]
mov ebx, dword [esp + 0x150]
mov edi, dword [esp + 0x154]
mov esi, dword [esp + 0x158]
movsd qword [esp + 0x90], xmm1
movsd xmm1, qword [esp + 0x178]
cmp eax, 5
movsd qword [esp + 0x88], xmm0
movsd qword [esp + 0x98], xmm2
mov dword [esp + 0xa0], ecx
movaps xmmword [esp + 0x10], xmm1
jb 0x5f5220
shl eax, 3
push 8
push eax
push dword [esp + 0x130]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0xa0]
movsd xmm1, qword [esp + 0x90]
movsd xmm0, qword [esp + 0x88]
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x290]
movsd qword [esp + 0x128], xmm1
movsd xmm1, qword [esp + 0x98]
movsd qword [esp + 0x120], xmm0
cmp eax, 5
movsd qword [esp + 0x130], xmm1
jb 0x5f5285
shl eax, 3
push 8
push eax
push dword [esp + 0x278]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x50]
cmp eax, 5
jb 0x5f52a0
shl eax, 3
push 8
push eax
push dword [esp + 0x38]
call fcn.004ed020
add esp, 0xc
movsd xmm1, qword [esp + 0x128]
mov dword [esp + 0x460], ebx
mov dword [esp + 0x464], edi
mov dword [esp + 0x468], esi
mov eax, dword [esp + 0x138]
movq xmm0, qword [esp + 0x120]
movq xmm2, qword [esp + 0x130]
mov bl, 1
movsd qword [esp + 0x474], xmm1
movdqa xmm1, xmmword [esp + 0x10]
mov dword [esp + 0x484], eax
movq qword [esp + 0x46c], xmm0
movq qword [esp + 0x47c], xmm2
movd eax, xmm1
movq qword [esp + 0x488], xmm1
cmp eax, 5
cmovae eax, edi
mov esi, eax
test eax, eax
jne 0x5f5cca
mov ecx, dword [esp + 0xc]
cmp ecx, 4
jbe 0x5f5332
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 8]
jmp 0x5f533a
mov eax, dword [ebp + 0xc]
lea edx, [eax + 8]
mov eax, ecx
mov cl, 1
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x120]
push eax
call fcn.005e4bc0
add esp, 4
movsd xmm1, qword [esp + 0x140]
movsd xmm2, qword [esp + 0x138]
movq xmm0, qword [esp + 0x148]
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [esp + 0x130]
movsd qword [esp + 0x40], xmm2
movq xmm2, qword [esp + 0x120]
movq qword [esp + 0x50], xmm0
movsd qword [esp + 0x38], xmm1
movq xmm1, qword [esp + 0x128]
movq qword [esp + 0x28], xmm2
movq qword [esp + 0x30], xmm1
lea eax, [esp + 0x430]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x270]
push eax
call fcn.0054c460
add esp, 0xc
mov eax, dword [esp + 0x118]
cmp eax, 5
mov ecx, eax
jb 0x5f53dc
mov ecx, dword [esp + 0xf4]
mov ebx, dword [esp + 0xe8]
cmp ebx, 5
jb 0x5f53fc
mov ebx, dword [esp + 0xc4]
cmp ecx, ebx
jae 0x5f5431
mov edx, dword [esp + 0xc8]
jmp 0x5f5407
cmp ecx, ebx
jae 0x5f5431
lea edx, [esp + 0xc8]
lea edi, [esp + 0x120]
mov ecx, edi
push ebx
call fcn.005e4bc0
add esp, 4
lea eax, [esp + 0xf0]
push eax
push edi
lea eax, [esp + 0x30]
push eax
call fcn.0054bec0
add esp, 0xc
jmp 0x5f5474
cmp eax, 5
jb 0x5f5448
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x20]
lea edi, [esp + 0x120]
mov ecx, edi
push eax
call fcn.005e4bc0
add esp, 4
lea eax, [esp + 0xc0]
push eax
push edi
lea eax, [esp + 0x30]
push eax
call fcn.0054bec0
add esp, 0xc
lea ebx, [esp + 0x268]
lea edi, [esp + 0x88]
lea eax, [esp + 0x28]
mov edx, ebx
mov ecx, edi
push eax
call fcn.005e84e0
add esp, 4
movsd xmm1, qword [esp + 0xe0]
movsd xmm2, qword [esp + 0xd8]
movsd xmm0, qword [esp + 0xe8]
mov eax, dword [esp + 0xb0]
mov ecx, 4
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [esp + 0xd0]
movsd qword [esp + 0x40], xmm2
movsd xmm2, qword [esp + 0xc0]
movsd qword [esp + 0x50], xmm0
cmp eax, 5
cmovb eax, ecx
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [esp + 0xc8]
movsd qword [esp + 0x28], xmm2
movsd qword [esp + 0x30], xmm1
mov edx, dword [esp + 0x50]
cmp edx, 5
cmovae ecx, edx
cmp eax, ecx
jae 0x5f55b1
movsd xmm1, qword [esp + 0xe0]
movsd xmm2, qword [esp + 0xd8]
movq xmm0, qword [esp + 0xe8]
movsd qword [esp + 0x140], xmm1
movsd xmm1, qword [esp + 0xd0]
movsd qword [esp + 0x138], xmm2
movq xmm2, qword [esp + 0xc0]
movq qword [esp + 0x148], xmm0
movsd qword [esp + 0x130], xmm1
movq xmm1, qword [esp + 0xc8]
movq qword [esp + 0x120], xmm2
movq qword [esp + 0x128], xmm1
push edi
lea eax, [esp + 0x124]
push eax
push ebx
call fcn.0054bec0
add esp, 0xc
mov eax, dword [esp + 0xb0]
cmp eax, 5
jb 0x5f564e
shl eax, 3
push 8
push eax
push dword [esp + 0x98]
jmp 0x5f5646
movsd xmm1, qword [esp + 0xa8]
movsd xmm2, qword [esp + 0xa0]
movq xmm0, qword [esp + 0xb0]
movsd qword [esp + 0x140], xmm1
movsd xmm1, qword [esp + 0x98]
movsd qword [esp + 0x138], xmm2
movq xmm2, qword [esp + 0x88]
movq qword [esp + 0x148], xmm0
movsd qword [esp + 0x130], xmm1
movq xmm1, qword [esp + 0x90]
movq qword [esp + 0x120], xmm2
movq qword [esp + 0x128], xmm1
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x124]
push eax
push ebx
call fcn.0054bec0
add esp, 0xc
mov eax, dword [esp + 0x50]
cmp eax, 5
jb 0x5f564e
shl eax, 3
push 8
push eax
push dword [esp + 0x38]
call fcn.004ed020
add esp, 0xc
movsd xmm1, qword [esp + 0x270]
movsd xmm2, qword [esp + 0x278]
movq xmm0, qword [esp + 0x268]
cmp dword [esp + 0xc], 4
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0x520]
mov dword [esp + 0x518], 0
mov dword [esp + 0x524], 0
mov dword [esp + 0x520], 4
mov dword [esp + 0x540], 1
movsd qword [esp + 0x378], xmm1
movsd xmm1, qword [esp + 0x280]
movsd qword [esp + 0x380], xmm2
movq xmm2, qword [esp + 0x288]
movq qword [esp + 0x370], xmm0
movsd qword [esp + 0x388], xmm1
movq xmm1, qword [esp + 0x290]
movq qword [esp + 0x390], xmm2
movq qword [esp + 0x398], xmm1
jbe 0x5f56ff
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x5f5706
mov edx, dword [esp + 0xc]
add ecx, 8
push 1
push eax
push edx
push ecx
lea eax, [esp + 0x130]
push eax
call fcn.0056c8b0
add esp, 0x14
mov eax, dword [esp + 0x540]
cmp eax, 5
jb 0x5f573c
shl eax, 3
push 8
push eax
push dword [esp + 0x528]
call fcn.004ed020
add esp, 0xc
movsd xmm1, qword [esp + 0x140]
movsd xmm2, qword [esp + 0x138]
movq xmm0, qword [esp + 0x148]
mov bl, 1
movsd qword [esp + 0x3c0], xmm1
movsd xmm1, qword [esp + 0x130]
movsd qword [esp + 0x3b8], xmm2
movq xmm2, qword [esp + 0x120]
movq qword [esp + 0x3c8], xmm0
movsd qword [esp + 0x3b0], xmm1
movq xmm1, qword [esp + 0x128]
movq qword [esp + 0x3a0], xmm2
movq qword [esp + 0x3a8], xmm1
lea edx, [esp + 0x370]
lea ecx, [esp + 0x120]
push 2
call fcn.005e89e0
add esp, 4
movsd xmm1, qword [esp + 0x140]
movsd xmm2, qword [esp + 0x138]
movq xmm0, qword [esp + 0x148]
movsd qword [esp + 0x2f0], xmm1
movsd xmm1, qword [esp + 0x130]
movsd qword [esp + 0x2e8], xmm2
movq xmm2, qword [esp + 0x120]
movq qword [esp + 0x2f8], xmm0
movsd qword [esp + 0x2e0], xmm1
movq xmm1, qword [esp + 0x128]
movq qword [esp + 0x2d0], xmm2
movq qword [esp + 0x2d8], xmm1
mov eax, dword [esp + 0x2f8]
cmp eax, 4
jbe 0x5f584a
mov eax, dword [esp + 0x2d4]
mov ecx, dword [esp + 0x2d8]
jmp 0x5f5851
lea ecx, [esp + 0x2d8]
mov edx, dword [esp + 0x3c8]
cmp edx, 4
jbe 0x5f586d
mov edx, dword [esp + 0x3a4]
mov edi, dword [esp + 0x3a8]
jmp 0x5f5874
lea edi, [esp + 0x3a8]
mov bl, 1
mov dword [esp + 0xc], ebx
push edx
push edi
push eax
push ecx
call fcn.0055db80
add esp, 0x10
inc al
cmp al, 2
jb 0x5f5c35
mov eax, dword [esp + 0x2f8]
cmp eax, 4
jbe 0x5f58ac
mov eax, dword [esp + 0x2d4]
mov edx, dword [esp + 0x2d8]
jmp 0x5f58b3
lea edx, [esp + 0x2d8]
lea edi, [esp + 0x120]
mov ecx, edi
push eax
call fcn.005e4bc0
add esp, 4
movsd xmm1, qword [esp + 0x140]
movsd xmm2, qword [esp + 0x138]
movq xmm0, qword [esp + 0x148]
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [esp + 0x130]
movsd qword [esp + 0x40], xmm2
movq xmm2, qword [esp + 0x120]
movq qword [esp + 0x50], xmm0
movsd qword [esp + 0x38], xmm1
movq xmm1, qword [esp + 0x128]
movq qword [esp + 0x28], xmm2
movq qword [esp + 0x30], xmm1
lea eax, [esp + 0x3a0]
push eax
lea eax, [esp + 0x2c]
push eax
push edi
call fcn.0054c460
add esp, 0xc
movsd xmm1, qword [esp + 0x128]
movsd xmm2, qword [esp + 0x130]
movq xmm0, qword [esp + 0x120]
movsd qword [esp + 0x308], xmm1
movsd xmm1, qword [esp + 0x138]
movsd qword [esp + 0x310], xmm2
movq xmm2, qword [esp + 0x140]
movq qword [esp + 0x300], xmm0
movsd qword [esp + 0x318], xmm1
movq xmm1, qword [esp + 0x148]
movq qword [esp + 0x320], xmm2
movq qword [esp + 0x328], xmm1
mov eax, dword [esp + 0x328]
cmp eax, 4
jbe 0x5f59bd
mov eax, dword [esp + 0x304]
mov edx, dword [esp + 0x308]
jmp 0x5f59c4
lea edx, [esp + 0x308]
mov bl, 1
lea edi, [esp + 0x120]
mov ecx, edi
push eax
call fcn.005e4bc0
add esp, 4
movsd xmm1, qword [esp + 0x140]
movsd xmm2, qword [esp + 0x138]
movq xmm0, qword [esp + 0x148]
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [esp + 0x130]
movsd qword [esp + 0x40], xmm2
movq xmm2, qword [esp + 0x120]
movq qword [esp + 0x50], xmm0
movsd qword [esp + 0x38], xmm1
movq xmm1, qword [esp + 0x128]
movq qword [esp + 0x28], xmm2
movq qword [esp + 0x30], xmm1
lea eax, [esp + 0x28]
push eax
push edi
call fcn.0054e220
add esp, 8
mov eax, dword [esp + 0x50]
cmp eax, 5
jb 0x5f5a5b
shl eax, 3
push 8
push eax
push dword [esp + 0x38]
call fcn.004ed020
add esp, 0xc
movsd xmm1, qword [esp + 0x128]
movsd xmm2, qword [esp + 0x130]
movq xmm0, qword [esp + 0x120]
mov bl, 1
movsd qword [esp + 0x498], xmm1
movsd xmm1, qword [esp + 0x138]
movsd qword [esp + 0x4a0], xmm2
movq xmm2, qword [esp + 0x140]
movq qword [esp + 0x490], xmm0
movsd qword [esp + 0x4a8], xmm1
movq xmm1, qword [esp + 0x148]
movq qword [esp + 0x4b0], xmm2
movq qword [esp + 0x4b8], xmm1
lea edi, [esp + 0x490]
lea ecx, [esp + 0x120]
mov edx, edi
push 2
call fcn.005e89e0
add esp, 4
movsd xmm1, qword [esp + 0x140]
movsd xmm2, qword [esp + 0x138]
movq xmm0, qword [esp + 0x148]
movsd qword [esp + 0x2b8], xmm1
movsd xmm1, qword [esp + 0x130]
movsd qword [esp + 0x2b0], xmm2
movq xmm2, qword [esp + 0x120]
movq qword [esp + 0x2c0], xmm0
movsd qword [esp + 0x2a8], xmm1
movq xmm1, qword [esp + 0x128]
movq qword [esp + 0x298], xmm2
movq qword [esp + 0x2a0], xmm1
mov eax, dword [esp + 0x2c0]
cmp eax, 4
jbe 0x5f5b6b
mov eax, dword [esp + 0x29c]
mov ecx, dword [esp + 0x2a0]
jmp 0x5f5b72
lea ecx, [esp + 0x2a0]
mov edx, dword [esp + 0x328]
cmp edx, 4
jbe 0x5f5b8e
mov edx, dword [esp + 0x304]
mov ebx, dword [esp + 0x308]
jmp 0x5f5b95
lea ebx, [esp + 0x308]
push edx
push ebx
push eax
push ecx
call fcn.0055db80
add esp, 0x10
test al, al
je 0x5f5db8
lea eax, [esp + 0x298]
push eax
call fcn.00549630
add esp, 4
mov eax, dword [esp + 0x2c0]
cmp eax, 5
jb 0x5f5bda
shl eax, 3
push 8
push eax
push dword [esp + 0x2a8]
call fcn.004ed020
add esp, 0xc
push edi
call fcn.00549630
add esp, 4
mov eax, dword [esp + 0x4b8]
cmp eax, 5
jb 0x5f5c04
shl eax, 3
push 8
push eax
push dword [esp + 0x4a0]
call fcn.004ed020
add esp, 0xc
lea eax, [esp + 0x300]
push eax
call fcn.00549630
add esp, 4
mov eax, dword [esp + 0x328]
cmp eax, 5
jb 0x5f5c35
shl eax, 3
push 8
push eax
push dword [esp + 0x310]
call fcn.004ed020
add esp, 0xc
lea eax, [esp + 0x2d0]
push eax
call fcn.00549630
add esp, 4
mov eax, dword [esp + 0x2f8]
cmp eax, 5
jb 0x5f5c66
shl eax, 3
push 8
push eax
push dword [esp + 0x2e0]
call fcn.004ed020
add esp, 0xc
lea eax, [esp + 0x3a0]
push eax
call fcn.00549630
add esp, 4
mov eax, dword [esp + 0x3c8]
cmp eax, 5
jb 0x5f5c97
shl eax, 3
push 8
push eax
push dword [esp + 0x3b0]
call fcn.004ed020
add esp, 0xc
lea eax, [esp + 0x370]
push eax
call fcn.00549630
add esp, 4
mov eax, dword [esp + 0x398]
cmp eax, 5
jb 0x5f5cc8
shl eax, 3
push 8
push eax
push dword [esp + 0x380]
call fcn.004ed020
add esp, 0xc
xor ebx, ebx
lea eax, [esp + 0x460]
push eax
call fcn.00549630
add esp, 4
mov eax, dword [esp + 0x488]
cmp eax, 5
jb 0x5f5cfb
shl eax, 3
push 8
push eax
push dword [esp + 0x470]
call fcn.004ed020
add esp, 0xc
lea eax, [esp + 0x430]
push eax
call fcn.00549630
add esp, 4
mov eax, dword [esp + 0x458]
cmp eax, 5
jb 0x5f5d2c
shl eax, 3
push 8
push eax
push dword [esp + 0x440]
call fcn.004ed020
add esp, 0xc
lea eax, [esp + 0xf0]
push eax
call fcn.00549630
add esp, 4
mov eax, dword [esp + 0x118]
cmp eax, 5
jb 0x5f5d5d
shl eax, 3
push 8
push eax
push dword [esp + 0x100]
call fcn.004ed020
add esp, 0xc
lea eax, [esp + 0x400]
push eax
call fcn.00549630
add esp, 4
mov eax, dword [esp + 0x428]
cmp eax, 5
jb 0x5f5d8e
shl eax, 3
push 8
push eax
push dword [esp + 0x410]
call fcn.004ed020
add esp, 0xc
test esi, esi
je 0x5f4a1d
mov eax, dword [esp + 0xe8]
cmp eax, 5
jb 0x5f4a1d
shl eax, 3
push 8
push eax
push dword [esp + 0xd0]
jmp 0x5f4a15
lea edx, [esp + 0x370]
lea ecx, [esp + 0x120]
push edi
call fcn.005e4b30
add esp, 4
lea edx, [esp + 0x120]
lea eax, [esp + 0x3d0]
lea ecx, [esp + 0x88]
push eax
call fcn.005e3a60
add esp, 4
mov eax, dword [esp + 0x398]
cmp eax, 4
jbe 0x5f5e09
mov eax, dword [esp + 0x374]
mov edx, dword [esp + 0x378]
jmp 0x5f5e10
lea edx, [esp + 0x378]
mov bl, 1
lea esi, [esp + 0x120]
mov ecx, esi
push eax
call fcn.005e4bc0
add esp, 4
movsd xmm1, qword [esp + 0x140]
movsd xmm2, qword [esp + 0x138]
movq xmm0, qword [esp + 0x148]
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [esp + 0x130]
movsd qword [esp + 0x40], xmm2
movq xmm2, qword [esp + 0x120]
movq qword [esp + 0x50], xmm0
movsd qword [esp + 0x38], xmm1
movq xmm1, qword [esp + 0x128]
movq qword [esp + 0x28], xmm2
movq qword [esp + 0x30], xmm1
push edi
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x270]
push eax
call fcn.0054c460
add esp, 0xc
movsd xmm1, qword [esp + 0x3f0]
movsd xmm2, qword [esp + 0x3e8]
movq xmm0, qword [esp + 0x3f8]
xor ebx, ebx
movsd qword [esp + 0x140], xmm1
movsd xmm1, qword [esp + 0x3e0]
movsd qword [esp + 0x138], xmm2
movq xmm2, qword [esp + 0x3d0]
movq qword [esp + 0x148], xmm0
movsd qword [esp + 0x130], xmm1
movq xmm1, qword [esp + 0x3d8]
movq qword [esp + 0x120], xmm2
movq qword [esp + 0x128], xmm1
lea edx, [esp + 0x268]
lea ecx, [esp + 0x548]
push esi
call fcn.005e84e0
add esp, 4
mov eax, dword [esp + 0x88]
movsd xmm2, qword [esp + 0x9c]
movsd xmm1, qword [esp + 0xa4]
movq xmm0, qword [esp + 0x94]
mov edi, dword [esp + 0x8c]
mov esi, dword [esp + 0x90]
xor ebx, ebx
mov dword [esp + 0x20], eax
movsd qword [esp + 0x358], xmm2
movsd qword [esp + 0x360], xmm1
mov eax, dword [esp + 0xac]
movsd xmm2, qword [esp + 0xb0]
movsd xmm1, qword [esp + 0x548]
movq qword [esp + 0x350], xmm0
mov dword [esp + 0x368], eax
movaps xmmword [esp + 0x4d0], xmm2
movaps xmmword [esp + 0x500], xmm1
mov eax, dword [esp + 0x550]
movsd xmm2, qword [esp + 0x568]
movsd xmm1, qword [esp + 0x560]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x554]
movsd qword [esp + 0x4f8], xmm2
movsd qword [esp + 0x4f0], xmm1
movq xmm2, qword [esp + 0x558]
movq xmm1, qword [esp + 0x570]
mov dword [esp + 0xbc], eax
movq qword [esp + 0x4e8], xmm2
movdqa xmmword [esp + 0x4c0], xmm1
lea ecx, [esp + 0x298]
call fcn.005e7700
xor ebx, ebx
lea ecx, [esp + 0x490]
call fcn.005e7700
mov dword [esp + 0xc], 0
lea ecx, [esp + 0x300]
call fcn.005e7700
xor ebx, ebx
lea ecx, [esp + 0x2d0]
call fcn.005e7700
lea ecx, [esp + 0x3a0]
call fcn.005e7700
mov dword [esp + 0x10], 0
lea ecx, [esp + 0x370]
call fcn.005e7700
mov dword [esp + 0x10], 0
lea ecx, [esp + 0x460]
call fcn.005e7700
mov dword [esp + 0x10], 0
lea ecx, [esp + 0x430]
call fcn.005e7700
xor ebx, ebx
lea ecx, [esp + 0xf0]
call fcn.005e7700
mov dword [esp + 0x10], 0
lea ecx, [esp + 0x400]
call fcn.005e7700
cmp dword [esp + 0x20], 2
jne 0x5f60c9
movaps xmm3, xmmword [esp + 0x4d0]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0xbc]
unpcklpd xmm3, xmmword [esp + 0x500]
jmp 0x5f4a43
movsd xmm1, qword [esp + 0x358]
movsd xmm0, qword [esp + 0x360]
movsd xmm2, qword [esp + 0x350]
mov eax, dword [esp + 0x368]
mov ecx, dword [ebp + 0x18]
movsd qword [esp + 0x338], xmm1
movsd xmm1, qword [esp + 0x4f8]
movsd qword [esp + 0x340], xmm0
movsd qword [esp + 0x330], xmm2
movsd xmm2, qword [esp + 0x4e8]
mov dword [esp + 0x348], eax
mov ebx, dword [ecx]
mov eax, dword [esp + 0x348]
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [esp + 0x4f0]
movsd qword [esp + 0x28], xmm2
movq xmm2, qword [esp + 0x330]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x138], eax
xor eax, eax
test ebx, ebx
movsd qword [esp + 0x30], xmm1
movsd xmm1, qword [esp + 0x340]
movq qword [esp + 0x120], xmm2
movsd qword [esp + 0x130], xmm1
movq xmm1, qword [esp + 0x338]
movq qword [esp + 0x128], xmm1
jne 0x5f61a1
xor edx, edx
mov ebx, ecx
call fcn.005e7f60
mov eax, dword [ebx]
mov ecx, ebx
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
mov ebx, eax
lea eax, [eax + eax*2]
shl eax, 4
mov dword [edx + eax], ecx
mov dword [edx + eax + 4], edi
mov dword [edx + eax + 8], esi
mov dword [esp + 0xc], edx
mov ecx, dword [ebp + 0x18]
movsd xmm0, qword [esp + 0x120]
movq xmm1, qword [esp + 0x128]
movsd qword [edx + eax + 0xc], xmm0
movq qword [edx + eax + 0x14], xmm1
movsd xmm0, qword [esp + 0x130]
movsd qword [edx + eax + 0x1c], xmm0
movdqa xmm0, xmmword [esp + 0x4d0]
mov esi, dword [esp + 0x138]
mov dword [edx + eax + 0x24], esi
movq qword [edx + eax + 0x28], xmm0
mov edx, dword [esp + 0x10]
mov eax, ebx
mov esi, dword [ebp + 0x14]
mov ebx, dword [esp + 0x2cc]
inc eax
mov dword [ecx + 8], eax
cmp eax, edx
jne 0x5f6234
mov edi, ecx
call fcn.005e7f60
mov eax, dword [edi + 4]
mov ecx, edi
mov dword [esp + 0xc], eax
mov eax, dword [edi + 8]
mov edi, ecx
movaps xmm0, xmmword [esp + 0x500]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x10], eax
lea eax, [eax + eax*2]
shl eax, 4
movlps qword [edx + eax], xmm0
mov dword [edx + eax + 8], ecx
mov ecx, dword [esp + 0xbc]
mov dword [edx + eax + 0xc], ecx
mov ecx, dword [ebp + 0x10]
movsd xmm0, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x30]
movsd qword [edx + eax + 0x18], xmm1
movsd qword [edx + eax + 0x10], xmm0
movaps xmm1, xmmword [esp + 0x4c0]
movsd xmm0, qword [esp + 0x38]
movsd qword [edx + eax + 0x20], xmm0
movlps qword [edx + eax + 0x28], xmm1
mov eax, dword [esp + 0x10]
inc eax
mov dword [edi + 8], eax
mov eax, dword [ebp + 0xc]
movsd xmm1, qword [eax + 0x20]
movsd xmm2, qword [eax + 0x18]
movq xmm0, qword [eax + 0x28]
movsd xmm3, qword [ecx]
cmp ebx, 2
lea ebx, [esp + 0x120]
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [eax + 0x10]
movsd qword [esp + 0x40], xmm2
movsd xmm2, qword [eax]
movq qword [esp + 0x50], xmm0
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x28], xmm2
movsd xmm2, qword [ecx + 0x10]
mov eax, dword [edi + 8]
movsd qword [esp + 0x30], xmm1
movsd xmm1, qword [ecx + 8]
movsd qword [esp + 0x68], xmm2
movsd xmm2, qword [ecx + 0x20]
movsd qword [esp + 0x58], xmm3
movsd qword [esp + 0x60], xmm1
movsd xmm1, qword [ecx + 0x18]
movsd qword [esp + 0x78], xmm2
movsd xmm2, qword [esi + 0x28]
movsd qword [esp + 0x70], xmm1
movsd xmm1, qword [ecx + 0x28]
movsd qword [esp + 0x1a8], xmm2
movsd xmm2, qword [esi + 0x18]
mov ecx, 0x18
movsd qword [esp + 0x80], xmm1
movsd xmm1, qword [esi + 0x20]
movsd qword [esp + 0x198], xmm2
movq xmm2, qword [esi]
movsd qword [esp + 0x1a0], xmm1
movsd xmm1, qword [esi + 0x10]
movq qword [esp + 0x180], xmm2
movsd qword [esp + 0x190], xmm1
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x188], xmm1
movq xmm1, qword [edi]
mov dword [esp + 0x260], eax
lea eax, [esp + 0x28]
mov edi, ebx
mov esi, eax
movq qword [esp + 0x258], xmm1
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 8]
mov dword [esp + 0x1b0], 2
jae 0x5f63d1
push ebx
mov edi, eax
push eax
call fcn.005f97a0
add esp, 8
mov eax, dword [esp + 0x28]
cmp eax, 0x14
jne 0x5f63ec
mov eax, edi
push ebx
push eax
call fcn.005f80a0
add esp, 8
push 0x148
push ebx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x5f644e
movsd xmm2, qword [esp + 0x54]
movsd xmm1, qword [esp + 0x4c]
movq xmm0, qword [esp + 0x5c]
movsd qword [esi + 0x30], xmm2
movsd qword [esi + 0x28], xmm1
movsd xmm2, qword [esp + 0x44]
movsd xmm1, qword [esp + 0x3c]
movq qword [esi + 0x38], xmm0
movsd qword [esi + 0x20], xmm2
movsd qword [esi + 0x18], xmm1
movq xmm2, qword [esp + 0x2c]
movq xmm1, qword [esp + 0x34]
movq qword [esi + 0x10], xmm1
movq qword [esi + 8], xmm2
mov dword [esi + 4], eax
mov dword [esi], 2
lea ecx, [esp + 0x120]
call fcn.005e71f0
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret