Function at 0x4057f0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x18c
mov eax, dword [0x6a9a60]
xor eax, esp
mov dword [esp + 0x188], eax
push ebx
push esi
mov esi, dword [ebp + 0xc]
lea eax, [esp + 0x134]
push edi
mov ebx, ecx
mov edi, edx
push 0x40
push 0
mov dword [esp + 0x1c], ebx
push eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp + 0x10]
add esp, 0xc
push eax
push esi
cmp eax, 0x40
ja 0x405850
lea eax, [esp + 0x140]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
jmp 0x4058b3
xorps xmm0, xmm0
mov dword [esp + 0xe8], 0
lea ecx, [esp + 0xe0]
movlpd qword [esp + 0xe0], xmm0
mov dword [esp + 0x12c], 0x67452301
mov dword [esp + 0x130], 0xefcdab89
mov dword [esp + 0x134], 0x98badcfe
mov dword [esp + 0x138], 0x10325476
call fcn.004064f0
lea eax, [esp + 0x138]
push eax
lea ecx, [esp + 0xdc]
call fcn.004066d0
movaps xmm2, xmmword [str.6666666666666666jjjjjjjjjjjjjjjj]
lea eax, [esp + 0x138]
movups xmm0, xmmword [esp + 0x138]
mov dword [esp + 0x80], 0
lea ecx, [esp + 0x78]
movaps xmm1, xmm2
mov dword [esp + 0xc4], 0x67452301
pxor xmm1, xmm0
mov dword [esp + 0xc8], 0xefcdab89
movups xmm0, xmmword [esp + 0x148]
push eax
movups xmmword [esp + 0x13c], xmm1
mov dword [esp + 0xd0], 0x98badcfe
movaps xmm1, xmm2
mov dword [esp + 0xd4], 0x10325476
pxor xmm1, xmm0
movups xmm0, xmmword [esp + 0x15c]
movups xmmword [esp + 0x14c], xmm1
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmm0, xmmword [esp + 0x16c]
movups xmmword [esp + 0x15c], xmm1
pxor xmm2, xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0x16c], xmm2
movlpd qword [esp + 0x7c], xmm0
call fcn.00405e70
push dword [ebp + 8]
add dword [esp + 0x7c], 0x40
lea ecx, [esp + 0x7c]
push edi
adc dword [esp + 0x84], 0
call fcn.004064f0
lea eax, [esp + 0x184]
push eax
lea ecx, [esp + 0x7c]
call fcn.004066d0
movaps xmm2, xmmword [0x698da0]
lea eax, [esp + 0x138]
movups xmm0, xmmword [esp + 0x138]
mov dword [esp + 0x20], 0
lea ecx, [esp + 0x18]
movaps xmm1, xmm2
mov dword [esp + 0x64], 0x67452301
pxor xmm1, xmm0
mov dword [esp + 0x68], 0xefcdab89
movups xmm0, xmmword [esp + 0x148]
push eax
movups xmmword [esp + 0x13c], xmm1
mov dword [esp + 0x70], 0x98badcfe
movaps xmm1, xmm2
mov dword [esp + 0x74], 0x10325476
pxor xmm1, xmm0
movups xmm0, xmmword [esp + 0x15c]
movups xmmword [esp + 0x14c], xmm1
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmm0, xmmword [esp + 0x16c]
movups xmmword [esp + 0x15c], xmm1
pxor xmm2, xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0x16c], xmm2
movlpd qword [esp + 0x1c], xmm0
call fcn.00405e70
add dword [esp + 0x18], 0x40
lea esi, [esp + 0x184]
mov ecx, dword [esp + 0x20]
mov edi, 0x10
adc dword [esp + 0x1c], 0
test ecx, ecx
je 0x405a6a
nop
cmp ecx, 0x40
jae 0x405a6d
mov al, byte [esi]
inc esi
mov byte [esp + ecx + 0x24], al
mov ecx, dword [esp + 0x20]
inc ecx
mov dword [esp + 0x20], ecx
sub edi, 1
jne 0x405a50
cmp ecx, 0x40
jne 0x405a8d
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x1c]
call fcn.00405e70
add dword [esp + 0x18], 0x40
adc dword [esp + 0x1c], 0
xor ecx, ecx
mov dword [esp + 0x20], ecx
test edi, edi
je 0x405ae7
cmp edi, 0x40
jb 0x405ac7
mov ebx, edi
shr ebx, 6
nop dword [eax + eax]
push esi
lea ecx, [esp + 0x1c]
call fcn.00405e70
add esi, 0x40
add dword [esp + 0x18], 0x40
adc dword [esp + 0x1c], 0
sub edi, 0x40
sub ebx, 1
jne 0x405aa0
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
test edi, edi
je 0x405ae7
nop dword [eax + eax]
mov al, byte [esi]
lea esi, [esi + 1]
mov byte [esp + ecx + 0x24], al
mov ecx, dword [esp + 0x20]
inc ecx
mov dword [esp + 0x20], ecx
sub edi, 1
jne 0x405ad0
push ebx
lea ecx, [esp + 0x1c]
call fcn.004065a0
mov ecx, dword [esp + 0x194]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004b3004
mov esp, ebp
pop ebp
ret