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

Disassembly:
sub esp, 0x138
mov eax, dword [0x5a83f8]
xor eax, esp
mov dword [esp + 0x134], eax
mov edx, dword [esp + 0x14c]
mov ecx, dword [esp + 0x148]
add edx, ecx
push ebx
mov ebx, dword [esp + 0x144]
push ebp
push esi
push edi
mov edi, dword [esp + 0x14c]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x84], ebx
cmp dword [edi + 0x7610], 1
jne 0x5377f6
mov esi, dword [edi + 0x7608]
mov dword [esp + 0x30], esi
jmp 0x53780e
mov eax, dword [esp + 0x154]
test eax, eax
jle 0x53780a
lea esi, [ebx + eax]
mov dword [esp + 0x30], esi
jmp 0x53780e
mov dword [esp + 0x30], ebx
mov eax, dword [edi + 0x74b0]
mov ebp, dword [edi + 0x7578]
mov esi, dword [edi + 0x760c]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x74b4]
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0x74b8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x40], esi
test eax, eax
je 0x53966a
mov ebx, 8
mov dword [edi + 0x750c], 1
cmp eax, ebx
cmovl ebx, eax
mov eax, dword [edi + 0x682c]
mov dword [esp + 0xd8], eax
sub edx, ecx
mov eax, dword [edi + 0x6830]
mov dword [esp + 0xdc], eax
mov eax, dword [edi + 0x6834]
push edx
mov dword [esp + 0xe4], eax
lea eax, [esp + 0xb0]
push ecx
push eax
mov dword [esp + 0x5c], ebx
call fcn.00532580
add esp, 0xc
cmp eax, 0xffffff88
jbe 0x5378b9
mov ebp, 0xffffffec
jmp 0x5396ca
push dword [edi]
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.0053bb50
push dword [edi + 8]
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0xdc]
push eax
call fcn.0053bb50
push dword [edi + 4]
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.0053bb50
mov edx, dword [esp + 0xec]
xor ebp, ebp
mov edi, dword [esp + 0xd8]
add esp, 0x24
test ebx, ebx
mov dword [esp + 0x44], ebp
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x54], edx
jle 0x537f76
mov ebp, dword [esp + 0xd0]
lea eax, [esp + 0xe4]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x58], ebp
mov dword [esp + 0x48], ecx
jmp 0x537968
mov ebp, dword [esp + 0x58]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0xd4]
mov eax, dword [eax + ebp*8 + 4]
mov dword [esp + 0x60], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + ecx*8 + 4]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x78], ecx
mov esi, dword [eax + edx*8 + 4]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0xc4]
mov al, byte [esi + eax*8 + 2]
mov byte [esp + 0x2b], al
mov eax, dword [esp + 0xd4]
mov al, byte [eax + ebp*8 + 2]
mov byte [esp + 0x2a], al
mov eax, dword [esp + 0xcc]
mov al, byte [eax + edx*8 + 2]
mov edx, dword [esp + 0x48]
movzx edx, word [esi + edx*8]
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x70], edx
movzx edx, word [esi + ebp*8]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0xcc]
mov dword [esp + 0x68], edx
movzx edx, word [esi + ebp*8]
mov esi, dword [esp + 0xc4]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x48]
movzx edx, byte [esi + edx*8 + 3]
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x58]
movzx edx, byte [esi + edx*8 + 3]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0xcc]
movzx edx, byte [edx + ebp*8 + 3]
mov dword [esp + 0x20], edx
cmp al, 1
jbe 0x537ba3
cmp dword [esp + 0x164], 0
je 0x537ae2
cmp al, 0x19
jb 0x537ae2
mov edx, dword [esp + 0xac]
mov ecx, ebx
and ecx, 0x1f
movzx eax, al
sub eax, 5
mov ebp, edx
shl ebp, cl
add ebx, eax
mov ecx, eax
neg ecx
and ecx, 0x1f
shr ebp, cl
shl ebp, 5
add ebp, esi
cmp ebx, 0x20
jbe 0x537a84
mov edi, 0x5783a0
jmp 0x537ac5
cmp edi, dword [esp + 0xbc]
jb 0x537a99
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x537abc
mov esi, dword [esp + 0xb8]
cmp edi, esi
je 0x537acc
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x537ab5
mov ecx, edi
sub ecx, esi
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov edx, dword [edi]
mov dword [esp + 0xac], edx
mov dword [esp + 0xb4], edi
mov ecx, ebx
mov eax, edx
and ecx, 0x1f
add ebx, 5
shl eax, cl
shr eax, 0x1b
add ebp, eax
jmp 0x537b7e
mov ebp, dword [esp + 0xac]
mov ecx, ebx
and ecx, 0x1f
movzx edx, al
shl ebp, cl
add ebx, edx
mov ecx, edx
mov dword [esp + 0xb0], ebx
neg ecx
and ecx, 0x1f
shr ebp, cl
add ebp, esi
cmp ebx, 0x20
jbe 0x537b36
mov eax, dword [esp + 0xdc]
mov edi, 0x5783a0
mov esi, dword [esp + 0xd8]
mov dword [esp + 0xb4], edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0xe0], eax
jmp 0x537c25
cmp edi, dword [esp + 0xbc]
jb 0x537b4b
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x537b6e
mov edx, dword [esp + 0xb8]
cmp edi, edx
je 0x537b85
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x537b67
mov ecx, edi
sub ecx, edx
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov eax, dword [edi]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov eax, dword [esp + 0xdc]
mov esi, dword [esp + 0xd8]
mov dword [esp + 0x6c], eax
mov dword [esp + 0xe0], eax
jmp 0x537c25
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x537bcc
mov ebp, dword [esp + edx*4 + 0xd8]
xor eax, eax
test edx, edx
sete al
mov ecx, dword [esp + eax*4 + 0xd8]
mov dword [esp + 0xdc], ecx
jmp 0x537c2c
mov eax, dword [esp + 0xac]
mov ecx, ebx
and ecx, 0x1f
inc ebx
shl eax, cl
shr eax, 0x1f
mov dword [esp + 0xb0], ebx
lea ecx, [eax + edx]
add ecx, esi
mov esi, dword [esp + 0xd8]
lea ebp, [esi - 1]
cmp ecx, 3
je 0x537c00
mov ebp, dword [esp + ecx*4 + 0xd8]
mov edx, dword [esp + 0x6c]
xor eax, eax
test ebp, ebp
sete al
sub ebp, eax
mov eax, dword [esp + 0xdc]
cmp ecx, 1
cmovne edx, eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0xe0], edx
mov dword [esp + 0xdc], esi
mov al, byte [esp + 0x2a]
mov dword [esp + 0xd8], ebp
test al, al
je 0x537c6c
movzx edx, al
mov ecx, ebx
mov eax, dword [esp + 0xac]
and ecx, 0x1f
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 + 0x60]
add ecx, eax
mov al, byte [esp + 0x2a]
mov dword [esp + 0x7c], ecx
mov cl, byte [esp + 0x2b]
movzx edx, cl
movzx eax, al
add eax, edx
cmp eax, 0x14
jl 0x537c92
cmp ebx, 0x20
jbe 0x537d64
mov edi, 0x5783a0
mov dword [esp + 0xb4], edi
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0xac]
test cl, cl
je 0x537cc7
mov ecx, ebx
add ebx, edx
and ecx, 0x1f
mov dword [esp + 0xb0], ebx
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x18]
add ecx, eax
mov dword [esp + 0x78], ecx
cmp ebx, 0x20
jbe 0x537dda
mov edi, 0x5783a0
mov dword [esp + 0xb4], edi
mov esi, dword [esp + 0xac]
mov eax, dword [esp + 0x160]
dec eax
cmp dword [esp + 0x44], eax
je 0x537f3d
mov edx, dword [esp + 0x14]
mov eax, esi
add edx, ebx
mov ebx, dword [esp + 0x74]
mov ecx, edx
add edx, ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
and eax, dword [ecx*4 + 0x577c80]
mov ecx, dword [esp + 0x70]
movzx ecx, cx
add ecx, eax
mov eax, esi
mov dword [esp + 0x48], ecx
mov dword [esp + 0xc0], ecx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x68]
and eax, dword [ebx*4 + 0x577c80]
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0xd0], ecx
cmp edx, 0x20
jbe 0x537e45
mov edi, 0x5783a0
jmp 0x537e86
mov esi, dword [esp + 0xb8]
cmp edi, dword [esp + 0xbc]
jb 0x537d9a
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 0x537ca0
cmp edi, esi
je 0x537c99
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x537db3
mov ecx, edi
sub ecx, esi
imul eax, ecx, 0xfffffff8
sub edi, ecx
mov cl, byte [esp + 0x2b]
mov dword [esp + 0xb4], edi
add ebx, eax
mov eax, dword [edi]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xac], eax
jmp 0x537ca0
cmp edi, dword [esp + 0xbc]
jb 0x537e09
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov esi, dword [edi]
mov dword [esp + 0xac], esi
jmp 0x537ce3
cmp edi, esi
je 0x537cdc
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x537e22
mov ecx, edi
sub ecx, esi
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0xb4], edi
mov esi, dword [edi]
add ebx, eax
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], ebx
jmp 0x537ce3
cmp edi, dword [esp + 0xbc]
jb 0x537e5a
mov eax, edx
shr eax, 3
sub edi, eax
and edx, 7
jmp 0x537e7d
mov ebx, dword [esp + 0xb8]
cmp edi, ebx
je 0x537e8d
mov ecx, edx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x537e76
mov ecx, edi
sub ecx, ebx
imul eax, ecx, 0xfffffff8
sub edi, ecx
add edx, eax
mov esi, dword [edi]
mov dword [esp + 0xac], esi
mov dword [esp + 0xb4], edi
mov ebx, dword [esp + 0x20]
mov eax, esi
add ebx, edx
mov ecx, ebx
mov dword [esp + 0xb0], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x20]
and eax, dword [ecx*4 + 0x577c80]
mov ecx, dword [esp + 0x24]
movzx edx, cx
add edx, eax
mov dword [esp + 0x54], edx
mov dword [esp + 0xc8], edx
cmp ebx, 0x20
jbe 0x537ed7
mov edi, 0x5783a0
mov dword [esp + 0xb4], edi
jmp 0x537f41
cmp edi, dword [esp + 0xbc]
jb 0x537f03
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 0x537f41
mov edx, dword [esp + 0xb8]
cmp edi, edx
je 0x537f3d
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x537f1f
mov ecx, edi
sub ecx, edx
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
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x3c]
movq xmm0, qword [esp + 0x78]
movq qword [eax], xmm0
mov dword [eax + 8], ebp
add eax, 0xc
mov ebp, dword [esp + 0x44]
inc ebp
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], ebp
cmp ebp, dword [esp + 0x50]
jl 0x537960
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x48]
jmp 0x537f97
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd0]
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x48], esi
cmp ebp, dword [esp + 0x160]
jge 0x538e54
mov eax, dword [esp + 0xd4]
mov ebp, dword [eax + ecx*8 + 4]
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x7c], ebp
mov ecx, dword [eax + esi*8 + 4]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0xcc]
mov esi, dword [ecx + edx*8 + 4]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0xc4]
mov al, byte [esi + eax*8 + 2]
mov esi, dword [esp + 0x58]
mov byte [esp + 0x2a], al
mov eax, dword [esp + 0xd4]
mov al, byte [eax + esi*8 + 2]
mov byte [esp + 0x2b], al
mov al, byte [ecx + edx*8 + 2]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x48]
movzx edx, word [ecx + edx*8]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x74], edx
movzx edx, word [ecx + esi*8]
mov ecx, dword [esp + 0xcc]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x64], edx
movzx edx, word [ecx + esi*8]
mov esi, dword [esp + 0xc4]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x48]
movzx edx, byte [esi + edx*8 + 3]
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x58]
movzx edx, byte [esi + edx*8 + 3]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x54]
movzx edx, byte [ecx + edx*8 + 3]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], edx
cmp al, 1
jbe 0x5381e5
cmp dword [esp + 0x164], 0
je 0x538135
cmp al, 0x19
jb 0x538135
mov edx, dword [esp + 0xac]
mov ecx, ebx
movzx eax, al
and ecx, 0x1f
sub eax, 5
mov dword [esp + 0x3c], edx
shl dword [esp + 0x3c], cl
add ebx, eax
mov ecx, eax
neg ecx
and ecx, 0x1f
shr dword [esp + 0x3c], cl
mov eax, dword [esp + 0x3c]
shl eax, 5
add eax, esi
mov dword [esp + 0x3c], eax
cmp ebx, 0x20
jbe 0x5380cf
mov edi, 0x5783a0
jmp 0x538110
cmp edi, dword [esp + 0xbc]
jb 0x5380e4
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x538107
mov esi, dword [esp + 0xb8]
cmp edi, esi
je 0x538117
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x538100
mov ecx, edi
sub ecx, esi
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov edx, dword [edi]
mov dword [esp + 0xac], edx
mov dword [esp + 0xb4], edi
mov esi, dword [esp + 0x3c]
mov ecx, ebx
and ecx, 0x1f
mov eax, edx
shl eax, cl
add ebx, 5
shr eax, 0x1b
add esi, eax
mov dword [esp + 0x3c], esi
jmp 0x5381b9
movzx edx, al
mov ecx, ebx
mov eax, dword [esp + 0xac]
and ecx, 0x1f
shl eax, cl
add ebx, edx
mov ecx, edx
mov dword [esp + 0xb0], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
add esi, eax
mov dword [esp + 0x3c], esi
cmp ebx, 0x20
jbe 0x538171
mov edi, 0x5783a0
mov dword [esp + 0xb4], edi
jmp 0x5381c0
cmp edi, dword [esp + 0xbc]
jb 0x538186
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x5381a9
mov edx, dword [esp + 0xb8]
cmp edi, edx
je 0x5381c0
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x5381a2
mov ecx, edi
sub ecx, edx
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov eax, dword [edi]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x6c], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xdc], edx
jmp 0x538282
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x538219
mov ecx, dword [esp + edx*4 + 0xd8]
xor eax, eax
test edx, edx
mov dword [esp + 0x3c], ecx
sete al
mov edx, dword [esp + eax*4 + 0xd8]
mov dword [esp + 0xdc], edx
mov dword [esp + 0xd8], ecx
jmp 0x538289
mov eax, dword [esp + 0xac]
mov ecx, ebx
and ecx, 0x1f
inc ebx
shl eax, cl
lea ecx, [edx + esi]
shr eax, 0x1f
add ecx, eax
mov dword [esp + 0xb0], ebx
cmp ecx, 3
jne 0x538246
mov esi, dword [esp + 0xd8]
dec esi
jmp 0x53824d
mov esi, dword [esp + ecx*4 + 0xd8]
mov edx, dword [esp + 0x6c]
xor eax, eax
test esi, esi
sete al
sub esi, eax
mov eax, dword [esp + 0xd8]
cmp ecx, 1
mov dword [esp + 0x3c], esi
cmovne edx, dword [esp + 0xdc]
mov dword [esp + 0x6c], edx
mov dword [esp + 0xe0], edx
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], esi
mov al, byte [esp + 0x2b]
test al, al
je 0x5382be
movzx edx, al
mov ecx, ebx
mov eax, dword [esp + 0xac]
and ecx, 0x1f
shl eax, cl
add ebx, edx
mov ecx, edx
mov dword [esp + 0xb0], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
add ebp, eax
mov al, byte [esp + 0x2b]
mov dword [esp + 0x7c], ebp
movzx edx, byte [esp + 0x2a]
mov esi, dword [esp + 0xbc]
movzx eax, al
add eax, edx
cmp eax, 0x14
jl 0x5382e9
cmp ebx, 0x20
jbe 0x5383bd
mov edi, 0x5783a0
mov dword [esp + 0xb4], edi
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0xac]
cmp byte [esp + 0x2a], 0
jbe 0x538321
mov ecx, ebx
add ebx, edx
and ecx, 0x1f
mov dword [esp + 0xb0], ebx
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x78], ecx
cmp ebx, 0x20
jbe 0x53842a
mov edi, 0x5783a0
mov dword [esp + 0xb4], edi
mov ebp, dword [esp + 0xac]
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x44]
dec eax
cmp ecx, eax
je 0x53856b
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 + 0x577c80]
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
add edx, esi
movzx ecx, cx
add ecx, eax
mov eax, ebp
mov dword [esp + 0x48], ecx
mov dword [esp + 0xc0], ecx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x64]
and eax, dword [esi*4 + 0x577c80]
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0xd0], ecx
cmp edx, 0x20
jbe 0x538490
mov edi, 0x5783a0
jmp 0x5384d1
mov ebp, dword [esp + 0xb8]
cmp edi, esi
jb 0x5383ee
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 0x5382f7
cmp edi, ebp
je 0x5382f0
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x538407
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 0x5382f7
cmp edi, esi
jb 0x538454
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 0x53833d
cmp edi, ebp
je 0x538336
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x53846d
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 0x53833d
cmp edi, dword [esp + 0xbc]
jb 0x5384a5
mov eax, edx
shr eax, 3
sub edi, eax
and edx, 7
jmp 0x5384c8
mov ebx, dword [esp + 0xb8]
cmp edi, ebx
je 0x5384d8
mov ecx, edx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x5384c1
mov ecx, edi
sub ecx, ebx
imul eax, ecx, 0xfffffff8
sub edi, ecx
add edx, eax
mov ebp, dword [edi]
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb4], edi
mov esi, dword [esp + 0x60]
mov eax, ebp
lea ebx, [esi + edx]
mov ecx, ebx
mov dword [esp + 0xb0], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x20]
and eax, dword [esi*4 + 0x577c80]
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0xc8], ecx
cmp ebx, 0x20
jbe 0x538518
mov edi, 0x5783a0
jmp 0x538560
cmp edi, dword [esp + 0xbc]
jb 0x53852d
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x538550
mov edx, dword [esp + 0xb8]
cmp edi, edx
je 0x538567
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x538549
mov ecx, edi
sub ecx, edx
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov eax, dword [edi]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], edi
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x5c]
and ecx, 7
cmp dword [esi + 0x7610], 2
lea eax, [ecx + ecx*2]
lea ecx, [esp + 0xe4]
jne 0x538b3d
mov ebp, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov edx, dword [esp + 0x1c]
mov esi, dword [esi + 0x760c]
mov dword [esp + 0x18], ecx
lea eax, [edx + ebp]
cmp eax, esi
jbe 0x538875
sub esi, edx
je 0x5385d5
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
sub eax, ecx
cmp esi, eax
ja 0x538e4a
push esi
push edx
push ecx
call fcn.0053bda0
mov ecx, dword [esp + 0x24]
sub ebp, esi
add esp, 0xc
add dword [esp + 0x10], esi
mov dword [ecx], ebp
mov ebp, dword [esp + 0x5c]
movq xmm0, qword [ecx]
mov esi, dword [esp + 0x10]
movq qword [esp + 0x88], xmm0
mov ecx, dword [esp + 0x88]
lea eax, [ebp + 0x17614]
mov dword [esp + 0x40], eax
lea edx, [ebp + 0x7614]
mov eax, dword [esp + 0x8c]
add esi, ecx
mov dword [ebp + 0x7610], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], edx
lea ebp, [eax + ecx]
mov dword [esp + 0x20], esi
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov edx, esi
mov eax, dword [esp + 0x40]
sub edx, dword [ecx + 8]
mov dword [esp + 0x60], edx
cmp dword [esp + 0x1c], eax
ja 0x538dc1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
add ecx, ebp
add eax, 0xffffffe0
cmp ecx, eax
ja 0x538dc1
mov ecx, dword [esp + 0x30]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x538dc1
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax + 0x7614]
mov eax, dword [esp + 0x88]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x5386dc
mov edx, dword [esp + 0x5c]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x7624]
lea esi, [ecx + eax]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x20]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x5386d8
mov eax, dword [esp + 0x24]
add ecx, 0x10
add edx, 0x7634
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 0x5386c0
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
mov eax, esi
mov esi, dword [esp + 0x18]
sub eax, dword [esp + 0x2c]
mov ecx, dword [esi + 8]
mov esi, dword [esp + 0x20]
cmp ecx, eax
jbe 0x53875a
mov eax, esi
sub eax, dword [esp + 0x4c]
cmp ecx, eax
ja 0x5378af
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
add edx, eax
lea eax, [edx + ecx]
cmp eax, dword [esp + 0x38]
ja 0x538732
push ecx
push edx
push esi
call fcn.004ee190
mov esi, dword [esp + 0x24]
add esp, 0xc
jmp 0x538e07
mov esi, dword [esp + 0x38]
sub esi, edx
push esi
push edx
push dword [esp + 0x28]
call fcn.004ee190
mov ecx, dword [esp + 0x20]
add esp, 0xc
add dword [esp + 0x20], esi
sub ecx, esi
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
jmp 0x53875e
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov esi, dword [esp + 0x20]
cmp eax, 0x10
jb 0x5387b1
lea eax, [ecx + esi]
mov dword [esp + 0x24], eax
movups xmm0, xmmword [edx]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jle 0x538cf8
lea ecx, [edx + 0x10]
mov edx, dword [esp + 0x24]
lea eax, [esi + 0x10]
nop
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 0x538790
mov esi, dword [esp + 0x18]
jmp 0x538e07
cmp eax, 8
jae 0x5387f3
movzx eax, byte [edx]
mov ecx, dword [esp + 0x18]
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]
mov byte [esi + 3], al
mov eax, dword [ecx + 8]
add edx, dword [eax*4 + 0x5785b4]
mov eax, dword [edx]
mov dword [esi + 4], eax
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x14]
sub edx, dword [eax*4 + 0x5785d4]
jmp 0x5387fd
mov eax, dword [edx]
mov dword [esi], eax
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
cmp ecx, 8
jbe 0x538cf8
lea eax, [ecx - 8]
add edx, 8
lea ecx, [esi + 8]
mov dword [esp + 0x24], eax
lea esi, [ecx + eax]
mov eax, ecx
sub eax, edx
cmp eax, 0x10
jge 0x53883d
sub edx, ecx
mov eax, dword [edx + ecx]
mov dword [ecx], eax
mov eax, dword [edx + ecx + 4]
mov dword [ecx + 4], eax
add ecx, 8
cmp ecx, esi
jb 0x538821
mov esi, dword [esp + 0x18]
jmp 0x538e07
cmp dword [esp + 0x24], 0x10
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
jle 0x538cf8
add ecx, 0x10
lea eax, [edx + 0x10]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, esi
jb 0x538854
mov esi, dword [esp + 0x18]
jmp 0x538e07
movq xmm0, qword [ecx]
add eax, 0xffffffe0
mov esi, dword [esp + 0x10]
movq qword [esp + 0x94], xmm0
mov ecx, dword [esp + 0x94]
add esi, ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], eax
lea ebp, [eax + ecx]
add ecx, edx
mov edx, esi
mov dword [esp + 0x68], ecx
mov esi, dword [esp + 0x18]
sub edx, dword [esi + 8]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x60], edx
cmp ecx, dword [esp + 0x40]
ja 0x538af5
mov eax, dword [esp + 0x10]
add eax, ebp
cmp eax, dword [esp + 0x64]
ja 0x538af5
mov ecx, dword [esp + 0x30]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x538af5
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x94]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x53894d
mov edx, dword [esp + 0x1c]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea esi, [ecx + eax]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x20]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x538949
mov eax, dword [esp + 0x24]
add ecx, 0x10
add edx, 0x20
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 0x538931
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], eax
mov eax, esi
mov esi, dword [esp + 0x18]
sub eax, dword [esp + 0x2c]
mov ecx, dword [esi + 8]
mov esi, dword [esp + 0x20]
cmp ecx, eax
jbe 0x5389d9
mov eax, esi
sub eax, dword [esp + 0x4c]
cmp ecx, eax
jbe 0x538986
mov esi, dword [esp + 0x18]
mov ebp, 0xffffffec
jmp 0x538e07
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
add edx, eax
lea eax, [edx + ecx]
cmp eax, dword [esp + 0x38]
ja 0x5389b1
push ecx
push edx
push esi
call fcn.004ee190
mov esi, dword [esp + 0x24]
add esp, 0xc
jmp 0x538e07
mov esi, dword [esp + 0x38]
sub esi, edx
push esi
push edx
push dword [esp + 0x28]
call fcn.004ee190
mov ecx, dword [esp + 0x20]
add esp, 0xc
add dword [esp + 0x20], esi
sub ecx, esi
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
jmp 0x5389dd
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov esi, dword [esp + 0x20]
cmp eax, 0x10
jb 0x538a31
lea eax, [ecx + esi]
mov dword [esp + 0x24], eax
movups xmm0, xmmword [edx]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jle 0x538cf8
lea ecx, [edx + 0x10]
mov edx, dword [esp + 0x24]
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 0x538a10
mov esi, dword [esp + 0x18]
jmp 0x538e07
cmp eax, 8
jae 0x538a73
movzx eax, byte [edx]
mov ecx, dword [esp + 0x18]
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]
mov byte [esi + 3], al
mov eax, dword [ecx + 8]
add edx, dword [eax*4 + 0x5785b4]
mov eax, dword [edx]
mov dword [esi + 4], eax
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x14]
sub edx, dword [eax*4 + 0x5785d4]
jmp 0x538a7d
mov eax, dword [edx]
mov dword [esi], eax
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
cmp ecx, 8
jbe 0x538cf8
lea eax, [ecx - 8]
add edx, 8
lea ecx, [esi + 8]
mov dword [esp + 0x24], eax
lea esi, [ecx + eax]
mov eax, ecx
sub eax, edx
cmp eax, 0x10
jge 0x538abd
sub edx, ecx
mov eax, dword [edx + ecx]
mov dword [ecx], eax
mov eax, dword [edx + ecx + 4]
mov dword [ecx + 4], eax
add ecx, 8
cmp ecx, esi
jb 0x538aa1
mov esi, dword [esp + 0x18]
jmp 0x538e07
cmp dword [esp + 0x24], 0x10
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
jle 0x538cf8
add ecx, 0x10
lea eax, [edx + 0x10]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, esi
jb 0x538ad4
mov esi, dword [esp + 0x18]
jmp 0x538e07
push dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x38]
push dword [esp + 0x50]
push dword [esp + 0x34]
movq xmm0, qword [esi]
push dword [esp + 0x4c]
push eax
mov eax, dword [esi + 8]
sub esp, 0xc
mov ecx, esp
push dword [esp + 0x84]
movq qword [ecx], xmm0
push dword [esp + 0x54]
mov dword [ecx + 8], eax
push dword [esp + 0x38]
call fcn.0053b9b0
add esp, 0x2c
jmp 0x538dfd
movq xmm0, qword [ecx + eax*4]
lea eax, [ecx + eax*4]
mov esi, dword [esp + 0x10]
movq qword [esp + 0xa0], xmm0
mov ecx, dword [esp + 0xa0]
add esi, ecx
mov dword [esp + 0x18], eax
mov edx, esi
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x14], eax
lea ebp, [eax + ecx]
add ecx, dword [esp + 0x1c]
mov dword [esp + 0x68], ecx
sub edx, dword [esi + 8]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x64], edx
cmp ecx, dword [esp + 0x40]
ja 0x538dc1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
add ecx, ebp
add eax, 0xffffffe0
cmp ecx, eax
ja 0x538dc1
mov ecx, dword [esp + 0x30]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x538dc1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0xa0]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x538c1d
mov edx, dword [esp + 0x1c]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea esi, [ecx + eax]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x20]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x538c19
mov eax, dword [esp + 0x24]
add ecx, 0x10
add edx, 0x20
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 0x538c01
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], eax
mov eax, esi
mov esi, dword [esp + 0x18]
sub eax, dword [esp + 0x2c]
mov ecx, dword [esi + 8]
mov esi, dword [esp + 0x20]
cmp ecx, eax
jbe 0x538ca9
mov eax, esi
sub eax, dword [esp + 0x4c]
cmp ecx, eax
jbe 0x538c56
mov esi, dword [esp + 0x18]
mov ebp, 0xffffffec
jmp 0x538e07
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
add edx, eax
lea eax, [edx + ecx]
cmp eax, dword [esp + 0x38]
ja 0x538c81
push ecx
push edx
push esi
call fcn.004ee190
mov esi, dword [esp + 0x24]
add esp, 0xc
jmp 0x538e07
mov esi, dword [esp + 0x38]
sub esi, edx
push esi
push edx
push dword [esp + 0x28]
call fcn.004ee190
mov ecx, dword [esp + 0x20]
add esp, 0xc
add dword [esp + 0x20], esi
sub ecx, esi
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
jmp 0x538cad
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov esi, dword [esp + 0x20]
cmp eax, 0x10
jb 0x538d01
lea eax, [ecx + esi]
mov dword [esp + 0x24], eax
movups xmm0, xmmword [edx]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jle 0x538cf8
lea ecx, [edx + 0x10]
mov edx, dword [esp + 0x24]
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 0x538ce0
mov esi, dword [esp + 0x18]
jmp 0x538e07
cmp eax, 8
jae 0x538d43
movzx eax, byte [edx]
mov ecx, dword [esp + 0x18]
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]
mov byte [esi + 3], al
mov eax, dword [ecx + 8]
add edx, dword [eax*4 + 0x5785b4]
mov eax, dword [edx]
mov dword [esi + 4], eax
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x14]
sub edx, dword [eax*4 + 0x5785d4]
jmp 0x538d4d
mov eax, dword [edx]
mov dword [esi], eax
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
cmp ecx, 8
jbe 0x538cf8
lea eax, [ecx - 8]
add edx, 8
lea ecx, [esi + 8]
mov dword [esp + 0x24], eax
lea esi, [ecx + eax]
mov eax, ecx
sub eax, edx
cmp eax, 0x10
jge 0x538d8c
sub edx, ecx
nop dword [eax]
mov eax, dword [edx + ecx]
mov dword [ecx], eax
mov eax, dword [edx + ecx + 4]
mov dword [ecx + 4], eax
add ecx, 8
cmp ecx, esi
jb 0x538d70
mov esi, dword [esp + 0x18]
jmp 0x538e07
cmp dword [esp + 0x24], 0x10
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
jle 0x538cf8
add ecx, 0x10
lea eax, [edx + 0x10]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, esi
jb 0x538da3
mov esi, dword [esp + 0x18]
jmp 0x538e07
push dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x38]
push dword [esp + 0x50]
push dword [esp + 0x34]
movq xmm0, qword [esi]
push dword [esp + 0x4c]
push eax
mov eax, dword [esi + 8]
sub esp, 0xc
mov ecx, esp
push dword [esp + 0x50]
movq qword [ecx], xmm0
push dword [esp + 0x34]
mov dword [ecx + 8], eax
call fcn.0053b8a0
add esp, 0x28
mov ebp, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
cmp ebp, 0xffffff88
ja 0x5396ca
add dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x44]
movq xmm0, qword [esp + 0x78]
inc ebp
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x3c]
movq qword [esi], xmm0
mov dword [esi + 8], eax
mov dword [esp + 0x44], ebp
cmp ebp, edx
jge 0x538e5b
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x48]
jmp 0x537fa4
mov ebp, 0xffffffba
jmp 0x5396ca
mov edx, dword [esp + 0x160]
lea eax, [esp + 0xac]
push eax
call fcn.00543460
add esp, 4
test eax, eax
je 0x5378af
sub ebp, dword [esp + 0x50]
mov dword [esp + 0x44], ebp
cmp ebp, edx
jge 0x539636
mov eax, ebp
lea esi, [esp + 0xe4]
and eax, 7
lea eax, [eax + eax*2]
lea esi, [esi + eax*4]
mov eax, dword [esp + 0x5c]
cmp dword [eax + 0x7610], 2
jne 0x5393a7
mov ebx, dword [esi]
mov edx, dword [esp + 0x1c]
mov edi, dword [eax + 0x760c]
lea ecx, [ebx + edx]
cmp ecx, edi
jbe 0x539132
mov ebp, dword [esp + 0x10]
sub edi, edx
je 0x538eec
mov eax, dword [esp + 0x30]
sub eax, ebp
cmp edi, eax
ja 0x538e4a
push edi
push edx
push ebp
call fcn.0053bda0
mov eax, dword [esp + 0x68]
sub ebx, edi
add esp, 0xc
mov dword [esi], ebx
add ebp, edi
mov dword [esp + 0x10], ebp
movq xmm0, qword [esi]
lea ecx, [eax + 0x7614]
add eax, 0x17614
movq qword [esp + 0xa0], xmm0
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], edx
mov dword [eax + 0x7610], 0
mov eax, dword [esi + 8]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xa0]
lea ebx, [eax + ebp]
lea ebp, [edx + eax]
mov edi, ebx
sub edi, dword [esi + 8]
add eax, ecx
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x40]
ja 0x5395ce
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
add ecx, ebp
add eax, 0xffffffe0
cmp ecx, eax
ja 0x5395ce
mov ecx, dword [esp + 0x30]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x5395ce
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xa0]
movups xmm0, xmmword [esi + 0x7614]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x538fdc
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 0x538fd8
add ecx, 0x10
add edx, 0x10
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, esi
jb 0x538fc0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x34], eax
mov eax, ebx
sub eax, esi
cmp ecx, eax
jbe 0x539046
mov eax, ebx
sub eax, dword [esp + 0x4c]
cmp ecx, eax
ja 0x5378af
mov ecx, dword [esp + 0x38]
mov eax, ecx
sub eax, esi
add edi, eax
lea eax, [edi + edx]
cmp eax, ecx
ja 0x539027
push edx
push edi
push ebx
call fcn.004ee190
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x539611
mov esi, ecx
sub esi, edi
push esi
push edi
push ebx
call fcn.004ee190
mov edx, dword [esp + 0x20]
add esp, 0xc
mov edi, dword [esp + 0x2c]
add ebx, esi
mov ecx, dword [esp + 0x50]
sub edx, esi
cmp ecx, 0x10
jb 0x539084
lea esi, [edx + ebx]
movups xmm0, xmmword [edi]
movups xmmword [ebx], xmm0
cmp edx, 0x10
jle 0x539518
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 0x539063
mov esi, dword [esp + 0x10]
jmp 0x539611
cmp ecx, 8
jae 0x5390b5
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 + 0x5785b4]
mov byte [ebx + 3], al
mov eax, dword [edi]
sub edi, dword [ecx*4 + 0x5785d4]
jmp 0x5390bc
mov eax, dword [edi]
mov dword [ebx], eax
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
cmp edx, 8
jbe 0x539518
lea ecx, [ebx + 8]
add edi, 8
mov eax, ecx
lea esi, [edx - 8]
sub eax, edi
lea edx, [ecx + esi]
cmp eax, 0x10
jge 0x5390fc
sub edi, ecx
nop
mov eax, dword [ecx + edi]
mov dword [ecx], eax
mov eax, dword [ecx + edi + 4]
mov dword [ecx + 4], eax
add ecx, 8
cmp ecx, edx
jb 0x5390e0
mov esi, dword [esp + 0x10]
jmp 0x539611
movups xmm0, xmmword [edi]
movups xmmword [ecx], xmm0
cmp esi, 0x10
jle 0x539518
add ecx, 0x10
lea eax, [edi + 0x10]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, edx
jb 0x539111
mov esi, dword [esp + 0x10]
jmp 0x539611
movq xmm0, qword [esi]
add ecx, 0xffffffe0
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x10]
movq qword [esp + 0x94], xmm0
mov edx, dword [esp + 0x98]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x94]
add ebx, eax
mov edi, ebx
mov dword [esp + 0x68], ecx
sub edi, dword [esi + 8]
mov dword [esp + 0x14], edx
lea ebp, [edx + eax]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x40]
ja 0x539362
mov eax, dword [esp + 0x10]
add eax, ebp
cmp eax, ecx
ja 0x539362
mov ecx, dword [esp + 0x30]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x539362
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x94]
movups xmm0, xmmword [esi]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x5391fc
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 0x5391f8
add ecx, 0x10
add edx, 0x10
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, esi
jb 0x5391e0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], eax
mov eax, ebx
sub eax, esi
cmp ecx, eax
jbe 0x539274
mov eax, ebx
sub eax, dword [esp + 0x4c]
cmp ecx, eax
jbe 0x539230
mov esi, dword [esp + 0x10]
mov ebp, 0xffffffec
jmp 0x539611
mov ecx, dword [esp + 0x38]
mov eax, ecx
sub eax, esi
add edi, eax
lea eax, [edi + edx]
cmp eax, ecx
ja 0x539255
push edx
push edi
push ebx
call fcn.004ee190
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x539611
mov esi, ecx
sub esi, edi
push esi
push edi
push ebx
call fcn.004ee190
mov edx, dword [esp + 0x20]
add esp, 0xc
mov edi, dword [esp + 0x2c]
add ebx, esi
mov ecx, dword [esp + 0x50]
sub edx, esi
cmp ecx, 0x10
jb 0x5392b2
lea esi, [edx + ebx]
movups xmm0, xmmword [edi]
movups xmmword [ebx], xmm0
cmp edx, 0x10
jle 0x539518
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 0x539291
mov esi, dword [esp + 0x10]
jmp 0x539611
cmp ecx, 8
jae 0x5392e3
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 + 0x5785b4]
mov byte [ebx + 3], al
mov eax, dword [edi]
sub edi, dword [ecx*4 + 0x5785d4]
jmp 0x5392ea
mov eax, dword [edi]
mov dword [ebx], eax
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
cmp edx, 8
jbe 0x539518
lea ecx, [ebx + 8]
add edi, 8
mov eax, ecx
lea esi, [edx - 8]
sub eax, edi
lea edx, [ecx + esi]
cmp eax, 0x10
jge 0x53932c
sub edi, ecx
nop dword [eax]
mov eax, dword [ecx + edi]
mov dword [ecx], eax
mov eax, dword [ecx + edi + 4]
mov dword [ecx + 4], eax
add ecx, 8
cmp ecx, edx
jb 0x539310
mov esi, dword [esp + 0x10]
jmp 0x539611
movups xmm0, xmmword [edi]
movups xmmword [ecx], xmm0
cmp esi, 0x10
jle 0x539518
add ecx, 0x10
lea eax, [edi + 0x10]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, edx
jb 0x539341
mov esi, dword [esp + 0x10]
jmp 0x539611
push dword [esp + 0x38]
movq xmm0, qword [esi]
lea eax, [esp + 0x38]
push dword [esp + 0x50]
push dword [esp + 0x34]
push dword [esp + 0x4c]
push eax
mov eax, dword [esi + 8]
sub esp, 0xc
mov esi, dword [esp + 0x30]
mov ecx, esp
push dword [esp + 0x88]
movq qword [ecx], xmm0
push dword [esp + 0x54]
mov dword [ecx + 8], eax
push esi
call fcn.0053b9b0
add esp, 0x2c
jmp 0x539607
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 + 0x50], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
lea ebx, [eax + ecx]
lea ebp, [edx + eax]
mov edi, ebx
add eax, dword [esp + 0x1c]
sub edi, dword [esi + 8]
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x40]
ja 0x5395ce
mov eax, dword [esp + 0x30]
add ecx, ebp
add eax, 0xffffffe0
cmp ecx, eax
ja 0x5395ce
mov ecx, dword [esp + 0x30]
lea eax, [ebp + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x5395ce
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x88]
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
cmp eax, 0x10
jbe 0x539470
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 0x539468
add ecx, 0x10
add edx, 0x10
nop word [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, esi
jb 0x539450
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], eax
mov eax, ebx
sub eax, dword [esp + 0x2c]
cmp ecx, eax
jbe 0x5394e0
mov eax, ebx
sub eax, dword [esp + 0x4c]
cmp ecx, eax
jbe 0x53949e
mov ebp, 0xffffffec
jmp 0x539611
mov ecx, dword [esp + 0x38]
mov eax, ecx
sub eax, dword [esp + 0x2c]
add edi, eax
lea eax, [edi + edx]
cmp eax, ecx
ja 0x5394c1
push edx
push edi
push ebx
call fcn.004ee190
add esp, 0xc
jmp 0x539611
mov esi, ecx
sub esi, edi
push esi
push edi
push ebx
call fcn.004ee190
mov edx, dword [esp + 0x20]
add esp, 0xc
mov edi, dword [esp + 0x2c]
add ebx, esi
mov ecx, dword [esp + 0x50]
sub edx, esi
cmp ecx, 0x10
jb 0x539521
lea esi, [edx + ebx]
movups xmm0, xmmword [edi]
movups xmmword [ebx], xmm0
cmp edx, 0x10
jle 0x539518
lea eax, [ebx + 0x10]
lea ecx, [edi + 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, esi
jb 0x539500
mov esi, dword [esp + 0x10]
jmp 0x539611
cmp ecx, 8
jae 0x539552
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 + 0x5785b4]
mov byte [ebx + 3], al
mov eax, dword [edi]
sub edi, dword [ecx*4 + 0x5785d4]
jmp 0x539559
mov eax, dword [edi]
mov dword [ebx], eax
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
cmp edx, 8
jbe 0x539518
lea ecx, [ebx + 8]
add edi, 8
mov eax, ecx
lea esi, [edx - 8]
sub eax, edi
lea edx, [ecx + esi]
cmp eax, 0x10
jge 0x539599
sub edi, ecx
nop dword [eax + eax]
mov eax, dword [ecx + edi]
mov dword [ecx], eax
mov eax, dword [ecx + edi + 4]
mov dword [ecx + 4], eax
add ecx, 8
cmp ecx, edx
jb 0x539580
mov esi, dword [esp + 0x10]
jmp 0x539611
movups xmm0, xmmword [edi]
movups xmmword [ecx], xmm0
cmp esi, 0x10
jle 0x539518
add ecx, 0x10
lea eax, [edi + 0x10]
nop
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, edx
jb 0x5395b0
mov esi, dword [esp + 0x10]
jmp 0x539611
push dword [esp + 0x38]
movq xmm0, qword [esi]
lea eax, [esp + 0x38]
push dword [esp + 0x50]
push dword [esp + 0x34]
push dword [esp + 0x4c]
push eax
mov eax, dword [esi + 8]
sub esp, 0xc
mov esi, dword [esp + 0x30]
mov ecx, esp
push dword [esp + 0x50]
movq qword [ecx], xmm0
push esi
mov dword [ecx + 8], eax
call fcn.0053b8a0
add esp, 0x28
mov ebp, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
cmp ebp, 0xffffff88
ja 0x5396ca
add esi, ebp
mov ebp, dword [esp + 0x44]
inc ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x44], ebp
cmp ebp, dword [esp + 0x160]
jl 0x538e83
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0xd8]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x40]
mov dword [edi + 0x682c], eax
mov eax, dword [esp + 0xdc]
mov dword [edi + 0x6830], eax
mov eax, dword [esp + 0x6c]
mov dword [edi + 0x6834], eax
cmp dword [edi + 0x7610], 2
jne 0x5396a0
mov eax, dword [esp + 0x30]
sub esi, ebp
sub eax, ebx
cmp esi, eax
ja 0x538e4a
test ebx, ebx
je 0x539694
push esi
push ebp
push ebx
call fcn.004ee190
add esp, 0xc
add ebx, esi
lea ebp, [edi + 0x7614]
lea esi, [edi + 0x17614]
mov eax, dword [esp + 0x30]
sub esi, ebp
sub eax, ebx
cmp esi, eax
ja 0x538e4a
test ebx, ebx
je 0x5396c1
push esi
push ebp
push ebx
call fcn.004ee190
add esp, 0xc
add ebx, esi
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.0046ec22
add esp, 0x138
ret