Function at 0x40d813
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
lea eax, [esp + 0x20]
mov esi, 0x5b7014
xor ebx, ebx
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], ecx
and dword [eax], 0
mov dword [eax + 4], 1
and dword [eax + 8], 0
cmp dword [esp + 0x50], ebx
je 0x40dc7d
mov dword [esp + 0xc], ebx
mov dword [esp + 0x54], ebx
and dword [esp + 0x3c], 0
xor ebx, ebx
lea ecx, [esp + 0x58]
mov edx, 0x513070
inc ebx
mov dword [esp + 0x40], ebx
and dword [esp + 0x44], 0
push 6
mov ebx, esi
call fcn.004110e9
pop eax
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
lea esi, [esp + 0x3c]
mov ecx, esi
add edx, edi
push edi
call fcn.00416a75
pop eax
mov ecx, dword [esp + 0x58]
mov edx, edi
call fcn.0043d0cd
lea ecx, [esp + 0x58]
lea edx, [esp + 0x54]
call fcn.00401c20
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov ecx, esi
add edx, edi
push edi
call fcn.00416a75
pop eax
mov ecx, dword [esp + 0x58]
mov edx, edi
call fcn.0043d0cd
mov eax, 0x540893
mov ecx, esi
lea edx, [0x540894]
push eax
call fcn.00416a75
pop eax
mov eax, dword [ebx + 4]
mov edx, dword [ebx + 8]
mov ecx, esi
add edx, eax
push eax
call fcn.00416a75
pop eax
xor eax, eax
push 0x13
pop ecx
lea edi, [esp + 0x68]
lea ebx, [esp + 0x58]
rep stosd dword es:[edi], eax
mov dword [esp + 0x58], 0x67452301
mov dword [esp + 0x5c], 0xefcdab89
mov dword [esp + 0x60], 0x98badcfe
mov dword [esp + 0x64], 0x10325476
mov byte [esp + 0xb4], 0
mov ecx, ebx
mov edi, dword [esp + 0x40]
mov edx, edi
push dword [esp + 0x44]
call fcn.0041fcbd
pop eax
lea esi, [esp + 0x10]
mov edx, ebx
mov ecx, esi
call fcn.00403449
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
call fcn.0043d0cd
movsd xmm0, qword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov ecx, ebx
mov edx, esi
movsd qword [esp + 0x20], xmm0
xorps xmm0, xmm0
mov dword [esp + 0x28], eax
movaps xmmword [esp + 0x10], xmm0
push 0x10
call fcn.0041fe14
pop eax
and dword [esp + 0x30], 0
xor eax, eax
mov cl, 3
inc eax
mov dword [esp + 0x34], eax
movzx eax, byte [esp + 0x10]
and dword [esp + 0x38], 0
div cl
movzx eax, ah
cmp al, 1
je 0x40da42
test eax, eax
jne 0x40db2f
mov edx, dword [0x5b7034]
movzx eax, byte [esp + 0x11]
mov ecx, dword [0x5b7030]
push 0x513050
push eax
call fcn.00403ce9
pop ecx
pop edx
mov edx, dword [eax]
mov ecx, esp
push dword [eax + 4]
call fcn.004110e9
pop eax
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
mov ebx, edi
lea edi, [esp + 0x30]
mov ecx, edi
add edx, esi
push esi
call fcn.00416a75
pop eax
mov ecx, dword [esp]
mov edx, esi
call fcn.0043d0cd
mov edx, dword [0x5b7028]
movzx eax, byte [esp + 0x12]
mov ecx, dword [0x5b7024]
push 0x513060
push eax
call fcn.00403ce9
pop ecx
pop edx
mov edx, dword [eax]
mov ecx, esp
push dword [eax + 4]
call fcn.004110e9
pop eax
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
mov ecx, edi
add edx, esi
push esi
call fcn.00416a75
pop eax
mov ecx, dword [esp]
mov edx, esi
call fcn.0043d0cd
mov edx, edi
mov edi, ebx
jmp 0x40dc5b
mov edx, dword [0x5b7034]
movzx eax, byte [esp + 0x11]
mov ecx, dword [0x5b7030]
push 0x513020
push eax
call fcn.00403ce9
pop ecx
pop edx
mov edx, dword [eax]
mov ebx, esp
mov ecx, ebx
push dword [eax + 4]
call fcn.004110e9
pop eax
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
mov dword [esp + 0x48], edi
lea edi, [esp + 0x30]
mov ecx, edi
add edx, esi
push esi
call fcn.00416a75
pop eax
mov ecx, dword [esp]
mov edx, esi
call fcn.0043d0cd
mov edx, dword [0x5b7034]
movzx eax, byte [esp + 0x12]
mov ecx, dword [0x5b7030]
push 0x513030
push eax
call fcn.00403ce9
pop ecx
pop edx
mov edx, dword [eax]
mov ecx, ebx
push dword [eax + 4]
call fcn.004110e9
pop eax
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
mov ecx, edi
add edx, esi
push esi
call fcn.00416a75
pop eax
mov ecx, dword [esp]
mov edx, esi
call fcn.0043d0cd
mov edx, dword [0x5b7028]
movzx eax, byte [esp + 0x13]
mov ecx, dword [0x5b7024]
push 0x513040
push eax
call fcn.00403ce9
pop ecx
pop edx
mov edx, dword [eax]
mov ecx, ebx
push dword [eax + 4]
call fcn.004110e9
pop eax
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
mov ecx, edi
add edx, esi
push esi
call fcn.00416a75
pop eax
mov ecx, dword [esp]
mov edx, esi
call fcn.0043d0cd
mov edx, edi
mov edi, dword [esp + 0x48]
jmp 0x40dc5b
mov edx, dword [0x5b7034]
movzx eax, byte [esp + 0x11]
mov ecx, dword [0x5b7030]
push 0x512fe0
push eax
call fcn.00403ce9
pop ecx
pop edx
mov edx, dword [eax]
mov ecx, esp
push dword [eax + 4]
call fcn.004110e9
pop eax
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
lea ecx, [esp + 0x30]
add edx, esi
push esi
call fcn.00416a75
pop eax
mov ecx, dword [esp]
mov edx, esi
call fcn.0043d0cd
mov edx, dword [0x5b7028]
movzx eax, byte [esp + 0x12]
mov ecx, dword [0x5b7024]
push 0x512ff0
push eax
call fcn.00403ce9
pop ecx
pop edx
mov edx, dword [eax]
mov ebx, esp
mov ecx, ebx
push dword [eax + 4]
call fcn.004110e9
pop eax
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
lea ecx, [esp + 0x30]
add edx, esi
push esi
call fcn.00416a75
pop eax
mov ecx, dword [esp]
mov edx, esi
call fcn.0043d0cd
mov edx, dword [0x5b7034]
movzx eax, byte [esp + 0x13]
mov ecx, dword [0x5b7030]
push 0x513000
push eax
call fcn.00403ce9
pop ecx
pop edx
mov edx, dword [eax]
mov ecx, ebx
push dword [eax + 4]
call fcn.004110e9
pop eax
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
lea ecx, [esp + 0x30]
mov ebx, ecx
add edx, esi
push esi
call fcn.00416a75
pop eax
mov ecx, dword [esp]
mov edx, esi
call fcn.0043d0cd
mov edx, dword [0x5b7028]
movzx eax, byte [esp + 0x14]
mov ecx, dword [0x5b7024]
push 0x513010
push eax
call fcn.00403ce9
pop ecx
pop edx
mov edx, dword [eax]
mov ecx, esp
push dword [eax + 4]
call fcn.004110e9
pop eax
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
mov ecx, ebx
add edx, esi
push esi
call fcn.00416a75
pop eax
mov ecx, dword [esp]
mov edx, esi
call fcn.0043d0cd
mov edx, ebx
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xc]
call fcn.0046e6bb
mov ecx, dword [esp + 0x3c]
mov edx, edi
call fcn.0043d0cd
inc ebx
lea esi, [esp + 0x20]
jmp 0x40d843
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
call fcn.0043d0cd
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret