Function at 0x10003670
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x144
push ebx
push esi
push edi
push 0x3f
lea eax, [ebp - 0x8f]
mov edi, edx
push 0
push eax
mov dword [ebp - 4], edi
mov esi, ecx
mov dword [ebp - 8], 0
mov byte [ebp - 0x90], 0
call sub.ntdll.dll_memset
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
add esp, 0xc
mov dword [ebp - 0xc], 0x40
call ebx
mov ecx, dword [0x10007280]
test eax, eax
cmovne ecx, eax
imul ecx, ecx, 0x19660d
add ecx, 0x3c6ef35f
mov dword [0x10007280], ecx
call ebx
xor ecx, ecx
jmp 0x100036e0
imul eax, eax, 0x19660d
add eax, 0x3c6ef35f
mov byte [ebp + ecx - 0x4c], al
inc ecx
cmp ecx, 0x28
jb 0x100036e0
push edi
mov edx, esi
lea ecx, [ebp - 0xe8]
mov dword [0x10007280], eax
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xe8], 0x67452301
mov dword [ebp - 0xe4], 0xefcdab89
mov dword [ebp - 0xe0], 0x98badcfe
mov dword [ebp - 0xdc], 0x10325476
call fcn.100045d0
lea edx, [ebp - 0xe8]
lea ecx, [ebp - 0x24]
call fcn.10004510
movq xmm0, qword [ebp - 0x24]
mov eax, dword [sym.imp.KERNEL32.dll_HeapAlloc]
lea ebx, [edi + 0xf]
and ebx, 0xfffffff0
movq qword [ebp - 0x4c], xmm0
movq xmm0, qword [ebp - 0x1c]
movq qword [ebp - 0x44], xmm0
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], ebx
cmp edi, ebx
je 0x100037b6
push ebx
push 0
push dword [0x10007250]
call eax
mov edi, eax
mov dword [ebp - 0x10], edi
test edi, edi
je 0x100037af
push ebx
push 0
push edi
call sub.ntdll.dll_memset
add esp, 0xc
push dword [ebp - 4]
push esi
push edi
call sub.ntdll.dll_memcpy
add esp, 0xc
mov eax, dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, edi
test esi, esi
je 0x1000380e
push ebx
push 0
push dword [0x10007250]
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x1000380e
lea edx, [ebp - 0x3c]
lea ecx, [ebp - 0x140]
call fcn.10005190
mov eax, dword [ebp - 4]
mov edi, ebx
shr edi, 4
mov dword [ebp - 8], eax
test edi, edi
je 0x1000380a
mov ebx, eax
sub ebx, esi
lea ecx, [ecx]
lea eax, [ebx + esi]
push eax
mov edx, esi
lea ecx, [ebp - 0x140]
call fcn.10005030
add esi, 0x10
dec edi
jne 0x100037f0
mov ebx, dword [ebp - 0x14]
xor edi, edi
jmp 0x10003816
mov ebx, dword [ebp + 8]
mov edi, 8
mov eax, dword [ebp - 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
test eax, eax
je 0x1000382e
push eax
push 0
push dword [0x10007250]
call esi
test edi, edi
jne 0x1000386a
sub esp, 8
lea eax, [ebp - 0x4c]
push eax
lea edx, [ebp - 0xc]
lea ecx, [ebp - 0x90]
call fcn.10004b10
test eax, eax
jne 0x1000386a
mov edi, dword [ebp - 0xc]
add edi, ebx
push edi
push eax
push dword [0x10007250]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
test esi, esi
jne 0x10003889
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
xor edi, edi
mov eax, dword [ebp - 8]
test eax, eax
je 0x1000387e
push eax
push 0
push dword [0x10007250]
call esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push ebx
push dword [ebp - 8]
push esi
call sub.ntdll.dll_memcpy
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x10007280], eax
push dword [ebp - 0xc]
lea eax, [ebp - 0x90]
push eax
lea eax, [ebx + esi]
push eax
call sub.ntdll.dll_memcpy
mov eax, dword [ebp + 8]
add esp, 0xc
mov dword [eax], esi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1000386c