Function at 0x413560
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x54ef85
mov eax, dword fs:[0]
push eax
sub esp, 0x118
mov eax, dword [0x5ac1d0]
xor eax, esp
mov dword [esp + 0x110], eax
push ebx
push esi
push edi
mov eax, dword [0x5ac1d0]
xor eax, esp
push eax
lea eax, [esp + 0x128]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov edi, 0x14
mov esi, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], edi
call fcn.00414cc0
mov edi, eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x40], edi
xor eax, eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov eax, 0x10
lea ecx, [esp + 0x54]
lea edx, [esp + 0xa4]
mov dword [esp + 0x9c], eax
mov byte [esp + 0x95], 1
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xec], eax
mov byte [esp + 0xe5], 1
mov dword [esp + 0xf0], edx
mov dword [esp + 0xa4], 0x67452301
mov dword [esp + 0xa8], 0xefcdab89
mov dword [esp + 0xac], 0x98badcfe
mov dword [esp + 0xb0], 0x10325476
mov dword [esp + 0xb4], 0xc3d2e1f0
mov dword [esp + 0x44], vtable.KM::SHA1.0
mov byte [esp + 0x130], 3
mov eax, dword [ebx + 0x50]
mov ecx, dword [ebx + 0x54]
push eax
push ecx
lea ecx, [esp + 0x4c]
call fcn.004191c0
push 8
push esi
lea ecx, [esp + 0x4c]
call fcn.004191c0
mov eax, dword [esp + 0x44]
mov edx, dword [eax + 0x1c]
lea ecx, [esp + 0x44]
call edx
push eax
mov eax, dword [esp + 0x48]
mov edx, dword [eax + 0x38]
push edi
lea ecx, [esp + 0x4c]
call edx
mov edi, 0x10
mov dword [esp + 0x30], edi
call fcn.00414cc0
mov dword [esp + 0x34], eax
mov edi, 8
mov byte [esp + 0x130], 6
mov dword [esp + 0x24], edi
call fcn.00414cc0
mov dword [esp + 0x28], eax
mov byte [esp + 0x130], 9
mov ecx, dword [ebx + 0x50]
mov edi, dword [ebx + 0x54]
push esi
mov esi, dword [esp + 0x38]
push ecx
push edi
mov edx, eax
mov ecx, esi
call fcn.00412f20
mov eax, dword [ebx + 0x58]
mov edx, dword [eax + 0x20]
lea edi, [ebx + 0x58]
add esp, 0xc
mov ecx, edi
call edx
push eax
mov eax, dword [esp + 0x2c]
push eax
mov ecx, esi
push 0x10
mov esi, edi
call fcn.004093e0
push 0x60
call fcn.0041b439
add esp, 4
mov dword [esp + 0x18], eax
mov byte [esp + 0x130], 0xa
test eax, eax
je 0x413737
test edi, edi
je 0x413729
lea ecx, [ebx + 0x5c]
push ecx
mov edi, eax
call fcn.0040d330
mov esi, eax
jmp 0x413739
xor ecx, ecx
push ecx
mov edi, eax
call fcn.0040d330
mov esi, eax
jmp 0x413739
xor esi, esi
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x1c]
push 1
push 0
mov byte [esp + 0x138], 0xb
mov edx, dword [esi]
mov edx, dword [edx + 0x14]
push 8
push eax
mov ecx, esi
call edx
call fcn.0040cdd0
mov edi, dword [esp + 0x14]
mov eax, dword [esi]
mov edx, dword [eax + 0x44]
push 8
add edi, 8
push edi
mov ecx, esi
call edx
mov ecx, esi
mov esi, ebx
mov dword [esp + 0x18], 0
call fcn.0040d070
mov eax, dword [esp + 0x14]
push 8
push eax
mov eax, edi
call fcn.00414bc0
add esp, 8
test al, al
jne 0x4137bf
mov dword [ebx + 0x48], 2
cmp byte [ebx + 0x1bc], al
je 0x4137c6
lea esi, [esp + 0xf4]
call fcn.004128c0
push 0x5a10ac
mov ecx, esi
push ecx
call fcn.00520078
mov dword [ebx + 0x48], 1
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x28]
xor al, al
mov ecx, 8
push edx
rep stosb byte es:[edi], al
call fcn.0051c451
mov edx, dword [esp + 0x38]
add esp, 4
mov edi, edx
xor al, al
mov ecx, 0x10
push edx
rep stosb byte es:[edi], al
call fcn.0051c451
mov edi, dword [esp + 0xf4]
lea eax, [esp + 0xa8]
add esp, 4
cmp edi, eax
jne 0x41381d
mov ecx, dword [esp + 0xec]
xor eax, eax
mov byte [esp + 0xe5], 0
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0xa0]
lea ecx, [esp + 0x54]
cmp edi, ecx
jne 0x41383f
mov ecx, dword [esp + 0x9c]
xor eax, eax
mov byte [esp + 0x95], 0
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x14]
mov edi, edx
xor al, al
mov ecx, 0x14
push edx
rep stosb byte es:[edi], al
call fcn.0051c451
add esp, 4
mov ecx, dword [esp + 0x128]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x110]
xor ecx, esp
call fcn.0051b896
mov esp, ebp
pop ebp
ret 8