Function at 0x4336b0
Capabilities:
Hash data with md5

Disassembly:
push 0xffffffffffffffff
push 0x46eca3
mov eax, dword fs:[0]
push eax
sub esp, 0x100
mov eax, dword [0x483390]
xor eax, esp
mov dword [esp + 0xf8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x483390]
xor eax, esp
push eax
lea eax, [esp + 0x114]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x18], edi
test edi, edi
jne 0x4336fc
xor eax, eax
jmp 0x433b07
lea esi, [esp + 0x20]
call fcn.0043b680
mov si, word [esp + 0x124]
xor eax, eax
mov dword [esp + 0x11c], 0
mov dword [edi], eax
mov dword [edi + 4], eax
xor ebp, ebp
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov byte [esp + 0x17], 0x10
cmp si, 1
jne 0x4338ca
lea esi, [esp + 0x94]
call fcn.0043b460
mov byte [esp + 0x11c], 1
mov dword [esp + 0x1c], ebp
cmp dword [esp + 0x94], ebp
je 0x433782
cmp dword [esp + 0x98], ebp
jne 0x433782
lea eax, [esp + 0x1c]
push eax
push ebp
call dword [esp + 0xa4]
cmp eax, 0x6f
jne 0x43379e
mov eax, 0xcccccccd
mul dword [esp + 0x1c]
shr edx, 9
test edx, edx
je 0x43379e
lea ecx, [esp + 0x94]
push ecx
lea ebx, [esp + 0x1b]
mov esi, edi
call fcn.0043b540
test eax, eax
jne 0x43379e
movzx ebp, byte [esp + 0x17]
mov byte [esp + 0x11c], 0
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x4337b8
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [esp + 0x34]
mov eax, ecx
sub eax, dword [esp + 0x30]
sar eax, 2
test eax, eax
jne 0x4337fa
cmp dword [esp + 0x20], eax
jne 0x4337f1
lea eax, [esp + 0x20]
push eax
call fcn.0043b7e0
lea ecx, [esp + 0x20]
push ecx
call fcn.0043b9a0
lea edx, [esp + 0x20]
push edx
call fcn.0043bb00
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x30]
sar ecx, 2
mov eax, ecx
mov ebx, 0x64
test eax, eax
jle 0x433863
push ebx
lea eax, [esp + 0xa8]
push 0
push eax
mov byte [esp + 0x23], bl
call fcn.00446e10
add esp, 0xc
lea ecx, [esp + 0xa4]
push ecx
lea edi, [esp + 0x1b]
lea eax, [esp + 0x24]
call fcn.0043b7a0
test eax, eax
jne 0x43385f
movzx esi, byte [esp + 0x17]
mov eax, 0x10
sub eax, ebp
cmp eax, esi
ja 0x433845
mov esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [esp + 0xa8]
push edx
add eax, ebp
push eax
call fcn.00449cc0
add esp, 0xc
add ebp, esi
mov edi, dword [esp + 0x18]
cmp ebp, 0x10
jae 0x433ac1
lea ecx, [esp + 0x3c]
push ecx
call fcn.00435870
push ebx
lea edx, [esp + 0xa8]
push 0
mov byte [esp + 0x124], 2
push edx
mov byte [esp + 0x23], bl
call fcn.00446e10
add esp, 0xc
lea eax, [esp + 0x17]
push eax
lea edi, [esp + 0xa8]
lea ecx, [esp + 0x40]
call fcn.00435b60
test eax, eax
jne 0x433aab
mov dl, byte [esp + 0x17]
cmp dl, 2
jbe 0x433a7f
movzx ecx, dl
sub ecx, 2
jmp 0x433a81
lea edx, [esp + 0x17]
push edx
push edi
call fcn.00439c50
test eax, eax
je 0x4338de
movzx ebp, byte [esp + 0x17]
cmp si, 1
jbe 0x4337b8
mov al, 0x45
mov dl, 0x41
mov cl, 0x77
mov bl, 0x6d
mov byte [esp + 0x94], dl
mov byte [esp + 0x95], cl
mov byte [esp + 0x96], al
mov byte [esp + 0x97], 0x73
mov byte [esp + 0x98], 0x4f
mov byte [esp + 0x99], bl
mov byte [esp + 0x9a], al
mov byte [esp + 0x9b], dl
mov byte [esp + 0x9c], cl
mov byte [esp + 0x9d], al
mov byte [esp + 0x9e], 0x73
mov byte [esp + 0x9f], 0x4f
mov byte [esp + 0xa0], bl
mov byte [esp + 0xa1], al
mov byte [esp + 0xa2], dl
mov byte [esp + 0xa3], cl
test ebp, ebp
je 0x433a61
mov esi, ebp
mov ecx, edi
mov edx, 0x473a4c
cmp ebp, 4
jb 0x433994
lea ebx, [ebx]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x43399c
sub esi, 4
add ecx, 4
add edx, 4
cmp esi, 4
jae 0x433980
test esi, esi
je 0x433a61
movzx eax, byte [edx]
movzx ebx, byte [ecx]
sub eax, ebx
jne 0x4339e3
cmp esi, 1
jbe 0x433a61
movzx eax, byte [edx + 1]
movzx ebx, byte [ecx + 1]
sub eax, ebx
jne 0x4339e3
cmp esi, 2
jbe 0x433a61
movzx eax, byte [edx + 2]
movzx ebx, byte [ecx + 2]
sub eax, ebx
jne 0x4339e3
cmp esi, 3
jbe 0x433a61
movzx eax, byte [edx + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
sar eax, 0x1f
or eax, 1
xor ecx, ecx
cmp eax, ecx
je 0x433a61
cmp ebp, ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], 0x67452301
mov dword [esp + 0x48], 0xefcdab89
mov dword [esp + 0x4c], 0x98badcfe
mov dword [esp + 0x50], 0x10325476
jle 0x433a35
push ecx
lea edx, [esp + 0x40]
push ebp
push edx
lea eax, [ebp*8]
mov ecx, ebp
mov edx, edi
call fcn.0043b2e0
add esp, 0xc
lea edi, [esp + 0x94]
lea esi, [esp + 0x3c]
call fcn.0043b390
mov edx, dword [esp + 0x18]
mov eax, 0x10
sub eax, ebp
push eax
mov ecx, edi
push ecx
add edx, ebp
push edx
call fcn.00449cc0
add esp, 0xc
jmp 0x433abd
mov eax, 0x10
sub eax, ebp
push eax
lea ecx, [esp + 0x98]
push ecx
lea edx, [edi + ebp]
push edx
call fcn.00449cc0
add esp, 0xc
jmp 0x433ac1
xor ecx, ecx
sub dl, cl
mov eax, 0x10
movzx edx, dl
sub eax, ebp
cmp eax, edx
jbe 0x433a93
mov eax, edx
mov edx, dword [esp + 0x18]
push eax
lea ecx, [esp + ecx + 0xa8]
push ecx
add edx, ebp
push edx
call fcn.00449cc0
add esp, 0xc
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x120], 0
call fcn.00435960
mov edi, dword [esp + 0x18]
mov si, word [esp + 0x124]
xor dword [edi], 0xf07f5f46
mov ecx, 0x1234
xor word [edi + 4], cx
mov edx, 0x5678
xor word [edi + 6], dx
cmp si, 1
je 0x433af9
push edi
call fcn.00433650
add ax, si
add esp, 4
inc ax
mov word [edi + 0xe], ax
lea eax, [esp + 0x20]
call fcn.0043b6f0
mov eax, 1
mov ecx, dword [esp + 0x114]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xf8]
xor ecx, esp
call fcn.004426a0
add esp, 0x10c
ret