Function at 0x15013591
Capabilities:
Hash data with md5

Disassembly:
push 0x2c
call 0x15013591
cmc
mov bh, bl
sbb byte [ecx + 0x56], dh
xlatb
les ebp, [ebp - 0x56cf8c1e]
add esp, 8
push edx
inc edx
mov edx, esp
xor dword [edx - 0x11], edi
pop edx
pushal
mov esi, dword [esp + 0x24]
mov dword [esi], 0x67452301
mov dword [esi + 4], 0xefcdab89
mov dword [esi + 8], 0x98badcfe
mov dword [esi + 0xc], 0x10325476
mov eax, dword [esp + 0x2c]
lea esp, [esp - 0x37]
xchg dword [esp + 0x33], eax
mov eax, dword [esp + 0x33]
lea esp, [esp + 0x33]
mov dword [esp - 0x6a], ecx
add dword [esp - 0x52], ecx
xor edx, edx
mov ecx, 0x40
div ecx
inc eax
pop edx
jmp 0x150135f6
sub esp, 0x40
mov ebx, esp
mov esi, dword [esp + 0x68]
xchg edx, eax
xchg edi, ebx
or ebx, 0x243f9745
mov ebx, edi
dec edx
jne 0x15013775
test eax, eax
js 0x15013626
add dword [esp - 0x32], edx
mov byte [ebx + eax], 0x80
jmp 0x15013629
xor eax, eax
dec eax
mov ecx, 0x40
sub ecx, eax
add edi, eax
sub esp, 4
xchg dword [esp], eax
sub esp, 0x1e
mov eax, dword [esp + 0x1e]
add esp, 0x22
sub esp, 4
xor eax, eax
inc edi
dec ecx
or ecx, ecx
je 0x1501365b
mov byte [edi], al
inc edi
dec ecx
jne 0x15013651
or eax, 0xffffffff
and eax, 0xffffffff
and eax, dword [esp]
jae 0x1501366f
sub esi, 0
push esi
call 0x15013689
dec edi
fsubr st(5), st(0)
mov edx, 0x8661c86b
inc edi
je 0x1501361d
adc ah, bl
loopne 0x1501361d
pop esi
aas
or al, 0x55
push 0xffffffffffffff83
les ecx, [eax]
add esp, 4
test eax, eax
js 0x150136f1
je 0x1501369b
cmp eax, esi
push 0
push edi
xor edi, edi
jne 0x15013717
mov edi, esp
xor dword [edi - 0x62], edx
pop edi
jns 0x150136ac
cmp ebx, eax
add dword [esp], edx
xchg edx, eax
xor eax, eax
jne 0x1541932e
add eax, 0xce535832
push 0xffffffffffffffb1
call 0x150136cc
xchg esi, eax
pop ss
add al, 0xed
and dh, byte [ebx - 0x78f73b7d]
ret 0xf281
push 0xffffffffffffffff
push edi
mov edi, esp
jmp 0x150136fe
xor edi, 0
and dword [edi + 4], eax
pop edi
mov eax, dword [esp + 0x70]
push edx
xor edx, edx
or ecx, 0xffffffff
not ecx
or ecx, 0x88352e4e
jne 0x15013722
xor eax, 0x81067588
add byte [eax], al
add byte [eax], al
xor edx, 0
jns 0x15013726
test edi, esi
xor ecx, 0x88352e46
jno 0x15013730
cmp edx, eax
jne 0x15013734
or edi, edi
mul ecx
mov dword [ebx + 0x38], eax
push esi
xchg esi, ebx
shr ebx, 3
js 0x15013747
sub ebx, 0
shr ebx, 0x1d
add ebx, 0x5841adf5
or dword [esp - 0x52], esi
jo 0x15013758
and ebx, ebx
xchg esi, ebx
xor esi, 0x5841adc9
add esi, ebx
mov dword [esi], edx
pop esi
pop edx
pop eax
jmp 0x15013775
test eax, eax
js 0x15013796
cmp eax, 0x40
jae 0x150137a5
jmp 0x15013798
xor eax, eax
mov ecx, eax
jmp 0x150137c0
or ecx, 0xffffffff
jmp 0x150137b7
inc ecx
not ecx
and ecx, 0x40
mov edi, ebx
rep movsb byte es:[edi], byte [esi]
lea esp, [esp - 4]
xchg dword [esp], eax
mov eax, dword [esp]
push edx
push ebx
push esi
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x74]
push edi
mov eax, dword [edi]
shr ebx, 0xd
cmp dword [esp - 0x48], edi
shr ebx, 0x13
add ebx, 0x9cb36e6e
xor ebx, 0
push eax
call 0x15013804
mov gs, word [edi - 0x3465ba44]
test al, 0xc1
cmpsw word [esi], word es:[edi]
push esp
std
inc ebx
rol byte [ebx - 0xc7ef73c], 0xd5
cmp byte fs:[ecx], dl
xor ebx, 0x8d8b0abf
add ebx, edi
mov ebx, dword [ebx]
mov ecx, dword [edi + 8]
lea edi, [edi + 0xc]
add edi, 0
mov edx, dword [edi]
lea edi, [edi - 0xc]
sub edi, 0
xor edx, 0x497cf8d8
and edx, edi
or edx, edi
add esp, 0xfffffffc
mov dword [esp], edx
xor edx, edx
je 0x15013850
imul ebp, esi, 0xfa251c8f
stosd dword es:[edi], eax
or byte [ecx - 0x224b783a], ah
push edx
and esp, dword [eax]
fstp dword [esi - 0x357eb381]
cmp eax, 0x87ad17f4
adc al, 0x24
or edx, 0xad17f43d
xchg dword [esp], edx
xor dword [esp], 0xad17f431
add edx, dword [esp]
lea esp, [esp + 4]
mov edx, dword [edx]
mov edi, ebx
lea ebp, [ebx]
and edi, ecx
jmp 0x15013874
not ebp
and ebp, edx
or edi, ebp
lea eax, [eax + edi - 0x28955b88]
add eax, dword [esi]
rol eax, 7
add eax, ebx
mov edi, eax
mov ebp, eax
and edi, ebx
not ebp
and ebp, ecx
or edi, ebp
lea edx, [edx + edi - 0x173848aa]
add edx, dword [esi + 4]
sub dword [esp - 0x46], ebx
jmp 0x150138a9
rol edx, 0xc
add edx, eax
mov edi, edx
mov ebp, edx
and edi, eax
not ebp
and ebp, ebx
or edi, ebp
lea ecx, [ecx + edi + 0x242070db]
add ecx, dword [esi + 8]
rol ecx, 0x11
add ecx, edx
add edi, ebx
and edi, ecx
or edi, ecx
mov ebp, ecx
and edi, edx
not ebp
and ebp, eax
or edi, ebp
lea ebx, [ebx + edi - 0x3e423112]
add ebx, dword [esi + 0xc]
rol ebx, 0x16
add ebx, ecx
or edi, 0xffffffff
sub dword [esp - 0x27], ebx
not edi
sub edi, ebx
dec edi
not edi
mov ebp, ebx
and edi, ecx
jno 0x15013902
sub esi, 0
jo 0x15013907
add edi, 0
not ebp
and ebp, edx
or edi, ebp
lea eax, [eax + edi - 0xa83f051]
add eax, dword [esi + 0x10]
jmp 0x15013921
push esi
inc esi
mov esi, esp
sub dword [esi - 0x65], eax
pop esi
rol eax, 7
add eax, ebx
shl edi, 0xf
cmp dword [esp - 0x58], ebx
jmp 0x1501393d
shl edi, 0x11
xor edi, eax
xchg ebp, eax
and eax, edi
mov eax, ebp
and edi, ebx
not ebp
and ebp, ecx
or edi, ebp
lea edx, [edx + edi + 0x4787c62a]
add edx, dword [esi + 0x14]
rol edx, 0xc
add edx, eax
mov edi, edx
or ebp, 0xffffffff
jmp 0x1501396f
je 0x15013977
add eax, 0
inc ebp
xor ebp, edx
and edi, eax
not ebp
and ebp, ebx
aad 0x21
fisttp qword [ecx]
out dx, eax
or edi, ebp
lea ecx, [ecx + edi - 0x57cfb9ed]
add ecx, dword [esi + 0x18]
rol ecx, 0x11
add ecx, edx
lea edi, [ecx]
mov ebp, ecx
and edi, edx
not ebp
and ebp, eax
or edi, ebp
lea ebx, [ebx + edi - 0x2b96aff]
add ebx, dword [esi + 0x1c]
call 0x150139bb
push cs
das
cmp al, 0xc5
sbb cl, byte [ebx + 0x28]
inc ecx
out 0x27, al
aam 0x7d
jb 0x1501397d
inc eax
call 0x150139cb
jns 0x15013980
pop ds
insb byte es:[edi], dx
xor eax, 0xb1583bca
xchg esi, eax
pop ss
add esp, 8
rol ebx, 0x16
add ebx, ecx
mov edi, ebx
mov ebp, ebx
and edi, ecx
not ebp
and ebp, edx
or edi, ebp
lea eax, [eax + edi + 0x698098d8]
add eax, dword [esi + 0x20]
rol eax, 7
add eax, ebx
mov edi, eax
mov ebp, eax
and edi, ebx
not ebp
and ebp, ecx
or edi, ebp
push 0xe4e78c22
call fcn.15013a11
mov bl, 0x70
jmp 0xba9d4979