Function at 0x461e50
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x320
mov esi, esp
mov dword [esi + 0x308], ebp
mov dword [esi + 0x30c], esp
mov dword [esi + 0x318], 0xffffffff
mov dword [esi + 0x314], 0x703020
mov edx, dword [ebp + 8]
lea edi, [esi + 0x58]
lea eax, [esi + 0x310]
mov ecx, dword fs:[0]
add edx, 0x50
mov dword [esi + 0x310], ecx
mov ecx, edi
mov dword fs:[0], eax
call fcn.004616e0
lea ebx, [esi + 0x1b0]
mov edx, edi
mov ecx, ebx
call fcn.004872e0
mov byte [esi + 0x1e8], 0
push 0xc8
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movsd xmm1, qword [esi + 0x288]
mov ecx, dword [esi + 0x304]
mov eax, dword [esi + 0x2f8]
mov ebx, dword [ebp + 8]
movsd xmm2, qword [esi + 0x298]
mov edi, 0x452821e6
mov edx, 0x2df45158
movsd xmm0, qword [esi + 0x280]
movsd qword [esi + 0x20], xmm1
movsd xmm1, qword [esi + 0x290]
mov dword [esi + 0xf], ecx
mov ecx, 0x38d01376
mov dword [esi + 0x1a0], eax
mov eax, dword [esi + 0x301]
xor edi, dword [ebx + 0x4c]
movsd qword [esi + 0x30], xmm2
movsd xmm2, qword [esi + 0x2a8]
movsd qword [esi + 0x18], xmm0
xor ecx, dword [ebx + 0x48]
movsd xmm3, qword [esi + 0x18]
movsd qword [esi + 0x28], xmm1
movsd xmm1, qword [esi + 0x2a0]
mov dword [esi + 0xc], eax
movsd qword [esi + 0x40], xmm2
movsd xmm2, qword [esi + 0x2b8]
mov eax, ecx
mul edx
mov dword [esi + 8], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
movsd qword [esi + 0x38], xmm1
movsd xmm1, qword [esi + 0x2b0]
add eax, edx
imul edx, edi, 0x2df45158
bswap edi
imul ecx, ecx, 0xb36a80d2
movsd qword [esi + 0x50], xmm2
movsd xmm2, qword [esi + 0x2c8]
add edx, eax
mov eax, edi
mov dword [esi + 0x14], edx
mov edx, 0xb36a80d2
mul edx
movsd qword [esi + 0x48], xmm1
movsd xmm1, qword [esi + 0x2c0]
mov ebx, eax
imul eax, edi, 0xa7ae0bd2
movsd qword [esi + 0x170], xmm2
movsd xmm2, qword [esi + 0x2d8]
add eax, edx
bswap ebx
mov edx, 0xcf6654be
add ecx, eax
xor ebx, dword [esi + 0x14]
bswap ecx
movsd qword [esi + 0x168], xmm1
movsd xmm1, qword [esi + 0x2d0]
xor ecx, dword [esi + 8]
movsd qword [esi + 0x180], xmm2
movsd xmm2, qword [esi + 0x2e8]
imul edi, ebx, 0xcf6654be
bswap ebx
movsd qword [esi + 0x178], xmm1
movsd xmm1, qword [esi + 0x2e0]
mov eax, ecx
movsd qword [esi + 0x190], xmm2
movsd xmm2, qword [esi + 0x28]
mul edx
mov dword [esi + 8], eax
imul eax, ecx, 0x6e0ce934
add eax, edx
mov edx, 0xcb16f391
movsd qword [esi + 0x188], xmm1
movsd xmm1, qword [esi + 0x2f0]
add edi, eax
mov eax, ebx
imul ebx, ebx, 0x41ab9930
mul edx
add ebx, edx
mov edx, ecx
bswap eax
bswap edx
xor eax, edi
movsd qword [esi + 0x198], xmm1
movsd xmm1, qword [esi + 0x20]
imul edx, edx, 0xcb16f391
movsd qword [esi + 0x138], xmm2
movsd xmm2, qword [esi + 0x38]
movsd qword [esi + 0x128], xmm3
add edx, ebx
mov ebx, dword [ebp + 8]
bswap edx
xor edx, dword [esi + 8]
test cl, 0x20
movsd qword [esi + 0x130], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x148], xmm2
movsd xmm2, qword [esi + 0x48]
mov edi, edx
cmove edx, eax
movsd qword [esi + 0x140], xmm1
movsd xmm1, qword [esi + 0x40]
cmovne edi, eax
mov eax, edx
movsd qword [esi + 0x158], xmm2
shld eax, edi, cl
shld edi, edx, cl
movzx ecx, byte [ebx + 0x8c]
movsd qword [esi + 0x150], xmm1
movsd xmm1, qword [esi + 0x50]
movsd qword [esi + 0x160], xmm1
mov dword [esi + 0x124], eax
mov eax, dword [esi + 0xf]
mov dword [esi + 0x120], edi
lea edi, [ebx + 0x8d]
mov dword [esi + 0x1a4], edi
mov byte [esi + 0x1a8], cl
mov dword [esi + 0x1ac], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x1a9], eax
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x46213c
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4621c3
mov dword [0x919820], eax
push 8
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4621c3
mov ecx, dword [ebp + 0xc]
mov dword [esi + 8], edi
mov edi, dword [ebp + 0x10]
mov dword [eax], ebx
lea edx, [esi + 0x58]
mov dword [eax + 4], ecx
mov byte [esi + 7], 0
mov dword [esi + 0x318], 0
lea ecx, [esi + 0x1b0]
push 0x737f24
push eax
push edi
call fcn.004875f0
add esp, 0xc
cmp dword [esi + 0x1d8], 2
mov edi, dword [esi + 8]
je 0x4621ab
mov eax, dword [esi + 0x1e4]
lock dec dword [eax]
jne 0x4621ab
mov ecx, dword [esi + 0x1e4]
mov dword [esi + 0x318], 0xffffffff
call fcn.00444620
mov ecx, dword [esi + 0x310]
movzx eax, byte [edi]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 4
mov edx, 8
mov byte [esi + 7], 1
mov dword [esi + 0x318], 0
call fcn.00709d20
ud2