Function at 0x504ac0
Capabilities:
Hash data using sha1
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x94
call fcn.00628620
mov eax, dword [0x70d514]
xor eax, esp
mov dword [esp + 0x90], eax
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, ecx
push edi
mov edi, dword [ebp + 0xc]
mov ebx, edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], edi
cmp edi, 0x18
jae 0x504b10
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.006284fa
mov esp, ebp
pop ebp
ret
test ebx, ebx
jne 0x504b2c
lea eax, [edi - 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.006284fa
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x6b7bc4]
lea edx, [eax + 0x20]
mov eax, dword [str.J_y]
push 8
mov dword [edx], eax
lea eax, [esp + 0x7c]
push esi
push eax
push dword [esp + 0x18]
mov dword [edx + 4], ecx
call fcn.00504470
add esp, 0x10
cmp ebx, esi
jne 0x504b6b
lea eax, [edi - 8]
push eax
lea eax, [ebx + 8]
push eax
push ebx
call fcn.0062b1e0
add esp, 0xc
sub esi, 8
lea eax, [edi - 0x10]
push eax
mov dword [esp + 0x14], eax
lea eax, [esi + 8]
push eax
push ebx
push dword [esp + 0x18]
call fcn.00504470
push 8
lea eax, [edi - 8]
add eax, esi
push eax
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x28]
call fcn.00504470
mov cl, byte [esp + 0x9f]
lea esi, [edi - 0x11]
movzx eax, byte [esp + 0x98]
lea edi, [edi - 0x10]
mov byte [esp + 0x9f], al
add esp, 0x20
movzx eax, byte [esp + 0x79]
add esi, ebx
shr edi, 1
mov edx, ebx
mov byte [esp + 0x78], cl
mov cl, byte [esp + 0x7e]
mov byte [esp + 0x7e], al
movzx eax, byte [esp + 0x7a]
mov byte [esp + 0x79], cl
mov cl, byte [esp + 0x7d]
mov byte [esp + 0x7d], al
movzx eax, byte [esp + 0x7b]
mov byte [esp + 0x7a], cl
mov cl, byte [esp + 0x7c]
mov byte [esp + 0x7c], al
mov byte [esp + 0x7b], cl
je 0x504c0e
mov al, byte [edx]
lea esi, [esi - 1]
mov cl, byte [esi + 1]
lea edx, [edx + 1]
mov byte [esi + 1], al
mov byte [edx - 1], cl
sub edi, 1
jne 0x504bf8
mov esi, dword [esp + 0xc]
movzx eax, byte [esp + 0x80]
push dword [esp + 0x10]
lea edi, [esi + 0x20]
mov ecx, edi
push ebx
push ebx
push esi
mov byte [ecx + 7], al
movzx eax, byte [esp + 0x91]
mov byte [ecx + 6], al
movzx eax, byte [esp + 0x92]
mov byte [ecx + 5], al
movzx eax, byte [esp + 0x93]
mov byte [ecx + 4], al
mov eax, dword [esp + 0x94]
mov byte [ecx + 3], al
mov byte [ecx + 2], ah
movzx eax, byte [esp + 0x96]
mov byte [ecx + 1], al
movzx eax, byte [esp + 0x97]
mov byte [ecx], al
call fcn.00504470
push 8
lea eax, [esp + 0x8c]
push eax
push eax
push esi
call fcn.00504470
push 0x4c
lea eax, [esp + 0x50]
push 0
push eax
call fcn.0062b760
push dword [esp + 0x3c]
mov edx, ebx
mov dword [esp + 0x48], 0x67452301
lea ecx, [esp + 0x48]
mov dword [esp + 0x4c], 0xefcdab89
mov dword [esp + 0x50], 0x98badcfe
mov dword [esp + 0x54], 0x10325476
mov dword [esp + 0x58], 0xc3d2e1f0
call fcn.0048bed0
lea edx, [esp + 0x48]
lea ecx, [esp + 0xb8]
call fcn.0048bfe0
lea eax, [esp + 0x48]
push 0x60
push eax
call fcn.00401320
push 8
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.00401390
add esp, 0x44
test eax, eax
jne 0x504d0a
mov esi, dword [esp + 0x14]
add esi, 0xfffffff0
jmp 0x504d0d
or esi, 0xffffffff
lea eax, [esp + 0x78]
push 8
push eax
call fcn.00401320
lea eax, [esp + 0x90]
push 0x14
push eax
call fcn.00401320
lea eax, [esp + 0x90]
push 8
push eax
call fcn.00401320
push 8
push edi
call fcn.00401320
add esp, 0x20
cmp esi, 0xffffffff
jne 0x504d54
push dword [esp + 0x10]
push ebx
call fcn.00401320
add esp, 8
mov ecx, dword [esp + 0x9c]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.006284fa
mov esp, ebp
pop ebp
ret