Function at 0x572cf0
Capabilities:
Access peb ldr_data

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x64d9e0
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x188
mov eax, dword [0x6ae654]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0xac], edi
push dword [ebx + 0xc]
movups xmm0, xmmword [ebx + 0x18]
lea ecx, [edi + 4]
push dword [ebx + 8]
movups xmmword [ebp - 0x58], xmm0
call fcn.0057e5d0
lea ecx, [edi + 4]
call fcn.00446840
lea ecx, [edi + 4]
mov dword [ebp - 0x13c], eax
call fcn.0041d290
lea ecx, [edi + 4]
mov dword [ebp - 0x178], eax
call fcn.0057e5b0
lea ecx, [edi + 4]
mov dword [ebp - 0x10c], eax
call fcn.004ad4e0
movsd xmm0, qword [ebx + 0x28]
mulsd xmm0, qword [0x669760]
mov dword [ebp - 0x110], eax
mov eax, dword [ebx + 0x10]
sub eax, dword [ebx + 8]
mov dword [ebp - 0x144], eax
mov eax, dword [ebx + 0x14]
sub eax, dword [ebx + 0xc]
mov dword [ebp - 0x138], eax
call fcn.005a555b
movsd xmm0, qword [ebx + 0x30]
mulsd xmm0, qword [0x669760]
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x16c], edx
call fcn.005a555b
lea ecx, [edi + 4]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x108], edx
call fcn.0041dbb0
mov ecx, eax
call fcn.004ac2e0
lea ecx, [edi + 4]
mov dword [ebp - 0x170], eax
call fcn.0041dbb0
mov ecx, eax
call fcn.004ac2f0
mov esi, eax
lea eax, [edi + 0xfc]
mov ecx, eax
mov dword [ebp - 0x120], eax
call fcn.0057e5b0
lea ecx, [edi + 0xfc]
mov dword [ebp - 0x15c], eax
call fcn.004ad4e0
lea ecx, [edi + 0xfc]
mov dword [ebp - 0x160], eax
call fcn.0057e5a0
lea ecx, [edi + 0xfc]
mov dword [ebp - 0xe8], eax
call fcn.004ad400
cmp dword [edi + 0x20c], 2
mov dword [ebp - 0xf4], eax
mov eax, dword [edi + 0x214]
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x130], 0xff
mov dword [ebp - 0x12c], 0
jne 0x572e8a
mov dword [ebp - 0x130], 0xffff
mov dword [ebp - 0x12c], 0
movq xmm0, qword [ebp - 0x130]
lea eax, [ebp - 0x58]
mov edi, dword [ebp - 0x120]
lea ecx, [ebp - 0x8c]
push 1
push eax
punpcklqdq xmm0, xmm0
push edi
movaps xmmword [ebp - 0x190], xmm0
call fcn.0057e850
lea eax, [ebp - 0x48]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x8c]
call fcn.0056f9d0
test eax, eax
je 0x57384b
sub esi, dword [ebx + 0xc]
mov dword [ebp - 0x148], esi
nop dword [eax]
push dword [ebp - 0x44]
mov ecx, edi
push dword [ebp - 0x48]
call fcn.0057e5d0
mov ecx, edi
call fcn.00446840
mov ecx, edi
mov dword [ebp - 0xf8], eax
call fcn.0041d290
mov ecx, dword [ebp - 0x48]
mov edi, eax
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x44]
sub eax, ecx
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x3c]
movd xmm0, ecx
sub eax, esi
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0xfc], eax
mulsd xmm0, qword [ebx + 0x28]
addsd xmm0, qword [ebx + 0x38]
mulsd xmm0, qword [0x669760]
call fcn.005a555b
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x168], edx
mulsd xmm0, qword [ebx + 0x30]
addsd xmm0, qword [ebx + 0x40]
mulsd xmm0, qword [0x669760]
call fcn.005a555b
mov ecx, eax
mov eax, edx
mov esi, eax
sub esi, dword [ebx + 0xc]
cmp dword [ebp - 0xfc], 0
mov dword [ebp - 0xd4], esi
jle 0x57382e
nop dword [eax + eax]
add ecx, dword [ebp - 0x104]
mov dword [ebp - 0x11c], ecx
adc eax, dword [ebp - 0x108]
mov edx, eax
mov dword [ebp - 0x17c], eax
sub edx, dword [ebx + 0xc]
mov dword [ebp - 0x118], edx
test esi, esi
jns 0x572fbf
test edx, edx
js 0x5737f2
mov eax, dword [ebp - 0x138]
cmp esi, eax
jl 0x572fd1
cmp edx, eax
jge 0x5737f2
cmp dword [ebp - 0x108], 0
jl 0x573010
jg 0x572fe5
cmp dword [ebp - 0x104], 0
jbe 0x573010
mov eax, dword [ebp - 0x148]
lea ecx, [edx + 1]
cmp esi, edx
mov dword [ebp - 0x90], esi
cmovne ecx, edx
dec eax
cmp ecx, eax
lea esi, [ecx + 1]
cmovne esi, ecx
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0xd4], esi
jmp 0x573025
mov ecx, edx
mov dword [ebp - 0x90], ecx
cmp esi, edx
jne 0x573025
lea ecx, [edx - 1]
mov dword [ebp - 0x90], ecx
mov eax, dword [ebp - 0x150]
mov edx, dword [ebp - 0x168]
mov edi, dword [ebp - 0xf8]
mov dword [ebp - 0x128], eax
mov eax, edx
sub edx, dword [ebx + 8]
cmp dword [ebp - 0x124], 0
mov dword [ebp - 0xb4], edi
mov edi, dword [ebp - 0xd8]
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xa8], edi
jle 0x5737e0
sub esi, ecx
mov dword [ebp - 0x174], esi
mov esi, dword [ebp - 0x124]
mov dword [ebp - 0x114], esi
nop dword [eax + eax]
mov esi, dword [ebp - 0x128]
add esi, dword [ebp - 0x134]
mov dword [ebp - 0x128], esi
mov esi, dword [ebp - 0x16c]
adc eax, esi
mov dword [ebp - 0x158], eax
sub eax, dword [ebx + 8]
mov dword [ebp - 0x154], eax
test esi, esi
jl 0x5730df
jg 0x5730b8
cmp dword [ebp - 0x134], 0
jbe 0x5730df
cmp edx, eax
lea ecx, [eax + 1]
mov esi, edx
cmovne ecx, eax
mov eax, dword [ebp - 0x170]
dec eax
cmp ecx, eax
lea edx, [ecx + 1]
cmovne edx, ecx
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0xa4], edx
jmp 0x5730ee
mov esi, eax
mov dword [ebp - 0xbc], esi
cmp edx, eax
jne 0x5730f4
lea esi, [eax - 1]
mov dword [ebp - 0xbc], esi
mov eax, edx
xorps xmm0, xmm0
sub eax, esi
movlpd qword [ebp - 0xd0], xmm0
imul eax, dword [ebp - 0x174]
mov esi, ecx
movlpd qword [ebp - 0x38], xmm0
movlpd qword [ebp - 0x30], xmm0
movlpd qword [ebp - 0x28], xmm0
movlpd qword [ebp - 0x20], xmm0
cdq
movlpd qword [ebp - 0xe0], xmm0
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0xb8], esi
cmp ecx, dword [ebp - 0xd4]
jge 0x5737a2
mov edx, dword [ebp - 0xd0]
mov eax, ecx
imul eax, dword [ebp - 0x110]
mov dword [ebp - 0x98], edx
mov edx, dword [ebp - 0xa4]
add eax, dword [ebp - 0x178]
mov dword [ebp - 0xf0], eax
mov eax, ecx
imul eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0x9c], ecx
add eax, dword [ebp - 0x13c]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xc4], eax
nop word [eax + eax]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0x140], eax
test esi, esi
js 0x5731f8
cmp esi, dword [ebp - 0x138]
jge 0x5731f8
cmp dword [ebp - 0x13c], eax
je 0x573202
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0xb0], ecx
test edi, edi
je 0x573202
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0xdc], eax
jmp 0x573202
mov dword [ebp - 0x140], 1
mov esi, dword [ebp - 0xbc]
mov dword [ebp - 0xe4], esi
cmp esi, edx
jge 0x573415
mov edi, esi
imul edi, dword [ebp - 0xf4]
add edi, eax
mov dword [ebp - 0xa0], edi
mov edi, esi
imul edi, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xa0]
add edi, ecx
mov dword [ebp - 0x94], edi
nop
cmp dword [ebp - 0x140], 0
jne 0x5733e8
test esi, esi
js 0x5733e8
cmp esi, dword [ebp - 0x144]
jge 0x5733e8
xorps xmm0, xmm0
movlpd qword [ebp - 0xd0], xmm0
test ecx, ecx
je 0x573294
push dword [ebp - 0xe8]
lea eax, [ebp - 0xd0]
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0xcc]
add esp, 0xc
mov edx, dword [ebp - 0xd0]
jmp 0x57329c
mov edx, dword [ebp - 0x164]
xor ecx, ecx
mov eax, edx
or eax, ecx
je 0x5733d6
add dword [ebp - 0x98], edx
adc dword [ebp - 0x9c], ecx
add dword [ebp - 0xc4], 1
adc dword [ebp - 0xc0], 0
cmp dword [ebp - 0xa8], 0
je 0x5733d6
cmp dword [ebp - 0xdc], 0
mov eax, dword [ebp - 0xac]
mov edi, dword [eax + 0x210]
je 0x573348
xorps xmm0, xmm0
xor esi, esi
movlpd qword [ebp - 0xd0], xmm0
test edi, edi
jle 0x57333d
nop dword [eax]
nop word [eax + eax]
push dword [eax + 0x20c]
mov eax, dword [ebp - 0xa0]
add eax, esi
push eax
lea eax, [ebp - 0xd0]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0xd0]
add esp, 0xc
add dword [ebp + esi*8 - 0x38], eax
mov eax, dword [ebp - 0xcc]
adc dword [ebp + esi*8 - 0x34], eax
inc esi
mov eax, dword [ebp - 0xac]
cmp esi, edi
jl 0x573300
mov esi, dword [ebp - 0xe4]
jmp 0x5733d0
xor ecx, ecx
test edi, edi
jle 0x5733d0
cmp edi, 8
jb 0x5733b8
mov eax, edi
and eax, 0x80000007
jns 0x573365
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm2, xmmword [ebp - 0x190]
mov edx, edi
sub edx, eax
movups xmm0, xmmword [ebp + ecx*8 - 0x38]
movaps xmm1, xmm2
paddq xmm1, xmm0
movups xmmword [ebp + ecx*8 - 0x38], xmm1
movups xmm0, xmmword [ebp + ecx*8 - 0x28]
movaps xmm1, xmm2
paddq xmm0, xmm2
movups xmmword [ebp + ecx*8 - 0x28], xmm0
movups xmm0, xmmword [ebp + ecx*8 - 0x18]
paddq xmm1, xmm0
movups xmmword [ebp + ecx*8 - 0x18], xmm1
movups xmm0, xmmword [ebp + ecx*8 - 8]
movaps xmm1, xmm2
paddq xmm1, xmm0
movups xmmword [ebp + ecx*8 - 8], xmm1
add ecx, 8
cmp ecx, edx
jl 0x573370
cmp ecx, edi
jge 0x5733d0
mov eax, dword [ebp - 0x130]
add dword [ebp + ecx*8 - 0x38], eax
adc dword [ebp + ecx*8 - 0x34], 0
inc ecx
cmp ecx, edi
jl 0x5733c2
mov edi, dword [ebp - 0x94]
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0xa4]
add edi, dword [ebp - 0xe8]
inc esi
add eax, dword [ebp - 0xf4]
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0x94], edi
mov dword [ebp - 0xa0], eax
cmp esi, edx
jl 0x573240
mov edi, dword [ebp - 0xa8]
mov esi, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x10c]
inc esi
add dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x110]
add dword [ebp - 0xf0], eax
mov dword [ebp - 0xb8], esi
cmp esi, dword [ebp - 0xd4]
jl 0x5731b0
mov edx, dword [ebp - 0x98]
mov eax, edx
mov ecx, dword [ebp - 0x9c]
or eax, ecx
je 0x57379c
push dword [ebp - 0x14c]
push dword [ebp - 0x100]
push ecx
push edx
call fcn.005a5e30
mov ecx, dword [ebp - 0xac]
mov edi, edx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0xdc], edi
mov ecx, dword [ecx + 0x20c]
cmp ecx, 1
jne 0x573620
mov edx, dword [ebp - 0xb4]
mov cl, byte [edx]
test cl, cl
je 0x5735d3
mov esi, dword [ebp - 0x94]
movzx eax, cl
cdq
mov ecx, eax
add ecx, esi
mov dword [ebp - 0x98], ecx
adc edx, edi
mov dword [ebp - 0xb8], edx
jne 0x5734c8
cmp ecx, 0xff
jbe 0x5734dc
mov dword [ebp - 0x98], 0xff
mov dword [ebp - 0xb8], 0
mov ecx, dword [ebp - 0xac]
xor eax, eax
mov dword [ebp - 0x9c], eax
cmp dword [ecx + 0x210], eax
jle 0x5735c0
nop word [eax + eax]
push dword [ebp - 0xc0]
push dword [ebp - 0xc4]
push dword [ebp + eax*8 - 0x34]
push dword [ebp + eax*8 - 0x38]
call fcn.005a5e30
push edi
push esi
push edx
push eax
call fcn.005a4ee0
mov dword [ebp - 0x100], eax
mov edi, edx
mov eax, dword [ebp - 0xb4]
movzx eax, byte [eax]
cdq
mov esi, eax
mov ecx, edx
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x9c]
movzx eax, byte [eax + edx]
cdq
push edx
push eax
push ecx
push esi
call fcn.005a4ee0
push dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x100]
push dword [ebp - 0x98]
add ecx, eax
adc edi, edx
push edi
push ecx
call fcn.005a5e30
mov ecx, eax
test edx, edx
jne 0x57357d
cmp ecx, 0xff
jbe 0x57358c
mov ecx, 0xff
mov dword [ebp - 0xcc], 0
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x94]
mov edi, dword [ebp - 0xdc]
mov byte [eax + edx], cl
inc eax
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0x9c], eax
cmp eax, dword [ecx + 0x210]
jl 0x573500
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x98]
mov byte [ecx], al
jmp 0x57379c
mov edi, dword [ebp - 0xac]
xor esi, esi
mov byte [edx], al
cmp dword [edi + 0x210], esi
jle 0x57379c
nop dword [eax]
push dword [ebp - 0xc0]
push dword [ebp - 0xc4]
push dword [ebp + esi*8 - 0x34]
push dword [ebp + esi*8 - 0x38]
call fcn.005a5e30
mov ecx, dword [ebp - 0xa8]
mov byte [esi + ecx], al
inc esi
cmp esi, dword [edi + 0x210]
jl 0x5735f0
jmp 0x57379c
cmp ecx, 2
jne 0x57379c
mov edx, dword [ebp - 0xb4]
movzx eax, word [edx]
mov ecx, eax
test ax, ax
je 0x57374d
mov esi, dword [ebp - 0x94]
cdq
mov ecx, eax
add ecx, esi
mov dword [ebp - 0x98], ecx
adc edx, edi
mov dword [ebp - 0xb8], edx
jne 0x573660
cmp ecx, 0xffff
jbe 0x573674
mov dword [ebp - 0x98], 0xffff
mov dword [ebp - 0xb8], 0
mov ecx, dword [ebp - 0xac]
xor eax, eax
mov dword [ebp - 0x9c], eax
cmp dword [ecx + 0x210], eax
jle 0x57373c
nop
push dword [ebp - 0xc0]
push dword [ebp - 0xc4]
push dword [ebp + eax*8 - 0x34]
push dword [ebp + eax*8 - 0x38]
call fcn.005a5e30
push edi
push esi
push edx
push eax
call fcn.005a4ee0
mov ecx, dword [ebp - 0x9c]
mov edi, eax
mov eax, dword [ebp - 0xb4]
mov esi, edx
mov edx, dword [ebp - 0xa8]
push dword [ebp - 0xb8]
movzx eax, word [eax]
movzx ecx, word [edx + ecx*2]
push dword [ebp - 0x98]
imul eax, ecx
cdq
add edi, eax
adc esi, edx
push esi
push edi
call fcn.005a5e30
mov ecx, eax
test edx, edx
jne 0x5736f8
cmp ecx, 0xffff
jbe 0x573707
mov ecx, 0xffff
mov dword [ebp - 0xcc], 0
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x94]
mov edi, dword [ebp - 0xdc]
mov word [edx + eax*2], cx
inc eax
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0x9c], eax
cmp eax, dword [ecx + 0x210]
jl 0x573690
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x98]
mov word [ecx], ax
jmp 0x57379c
mov edi, dword [ebp - 0xac]
xor esi, esi
mov eax, dword [ebp - 0x94]
mov word [edx], ax
cmp dword [edi + 0x210], esi
jle 0x57379c
nop word [eax + eax]
push dword [ebp - 0xc0]
push dword [ebp - 0xc4]
push dword [ebp + esi*8 - 0x34]
push dword [ebp + esi*8 - 0x38]
call fcn.005a5e30
mov ecx, dword [ebp - 0xa8]
mov word [ecx + esi*2], ax
inc esi
cmp esi, dword [edi + 0x210]
jl 0x573770
mov ecx, dword [ebp - 0x90]
mov esi, dword [ebp - 0xa8]
mov edi, dword [ebp - 0xf4]
inc dword [ebp - 0xb4]
add edi, esi
mov edx, dword [ebp - 0x154]
test esi, esi
mov eax, dword [ebp - 0x158]
cmove edi, esi
mov dword [ebp - 0xa4], edx
sub dword [ebp - 0x114], 1
mov dword [ebp - 0xa8], edi
jne 0x573080
mov ecx, dword [ebp - 0x11c]
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x15c]
mov esi, edx
add dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x160]
add eax, edi
mov dword [ebp - 0xd4], esi
test edi, edi
cmove eax, edi
sub dword [ebp - 0xfc], 1
mov edi, eax
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0xd8], edi
jne 0x572f90
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x8c]
call fcn.0056f9d0
mov edi, dword [ebp - 0x120]
test eax, eax
jne 0x572ee0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005a4e1e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x40