Function at 0x48e410
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x12c
mov eax, dword [0x5080e8]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x48]
mov edi, dword [eax]
cmp dword [edi + 0x10], 1
je 0x48ea8a
call fcn.0047c240
test eax, eax
jne 0x48eb98
cmp dword [esi + 0x74], 0x16
je 0x48e4a2
cmp dword [esi], 0
je 0x48e9df
mov eax, dword [esi + 0xa0]
mov ecx, esi
mov dword [esi + 0xa4], 0x15
mov dword [esi + 0xa8], 2
mov byte [eax], 2
mov eax, dword [esi + 0xa0]
mov byte [eax + 1], 0xa
call fcn.0047c140
mov eax, 0xffff8900
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.004b992a
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x6c]
cmp byte [edx], 0xc
je 0x48e4db
mov eax, dword [edi + 0x10]
cmp eax, 5
je 0x48e4b7
cmp eax, 7
jne 0x48e451
inc dword [esi + 4]
xor eax, eax
mov dword [esi + 0x88], 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.004b992a
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x80]
lea eax, [edx + 4]
mov dword [esp + 0x14], eax
add ecx, edx
mov eax, dword [edi + 0x10]
mov dword [esp + 0x10], ecx
cmp eax, 2
je 0x48e572
cmp eax, 6
je 0x48e572
cmp eax, 3
je 0x48e50e
cmp eax, 8
je 0x48e50e
cmp eax, 4
jne 0x48eb93
push ecx
lea edx, [esp + 0x18]
mov ecx, esi
call fcn.0048e2d0
add esp, 4
test eax, eax
je 0x48e5a0
cmp dword [esi], 0
je 0x48e765
mov eax, dword [esi + 0xa0]
mov ecx, esi
mov dword [esi + 0xa4], 0x15
mov dword [esi + 0xa8], 2
mov byte [eax], 2
mov eax, dword [esi + 0xa0]
mov byte [eax + 1], 0x2f
call fcn.0047c140
mov eax, 0xffff8500
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.004b992a
mov esp, ebp
pop ebp
ret
push ecx
mov ecx, dword [esi + 0x38]
lea edx, [esp + 0x18]
add ecx, 8
call fcn.00485020
mov ecx, dword [esi]
add esp, 4
test eax, eax
jne 0x48e59c
mov eax, dword [esi + 0x38]
mov eax, dword [eax + 8]
shl eax, 3
cmp eax, dword [ecx + 0x80]
jae 0x48e5a0
test ecx, ecx
jmp 0x48e524
mov ecx, dword [edi + 0x10]
mov eax, ecx
mov dword [esp + 0x24], ecx
sub eax, 2
je 0x48e5bc
sub eax, 1
je 0x48e5bc
sub eax, 1
jne 0x48ea8a
mov eax, dword [esi + 0x6c]
xor edi, edi
mov ebx, dword [esp + 0x14]
add eax, 4
mov edx, ebx
mov dword [esp + 0x1c], eax
sub edx, eax
cmp dword [esi + 0x14], 3
mov dword [esp + 0x20], edx
jne 0x48e6c9
mov edx, dword [esp + 0x10]
lea eax, [ebx + 2]
mov dword [esp + 0x28], eax
cmp eax, edx
ja case.default.0x48e5fe
movzx eax, byte [ebx]
dec eax
cmp eax, 5
ja case.default.0x48e5fe
jmp dword [eax*4 + 0x48ebb0]
mov edi, 3
jmp 0x48e62d
mov edi, 4
jmp 0x48e62d
mov edi, 5
jmp 0x48e62d
mov edi, 6
jmp 0x48e62d
mov edi, 7
jmp 0x48e62d
mov edi, 8
movzx eax, byte [ebx + 1]
sub eax, 1
je 0x48e651
sub eax, 2
jne case.default.0x48e5fe
mov dword [esp + 0x14], 4
mov dword [esp + 0x18], 4
jmp 0x48e661
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
mov eax, dword [esi]
mov eax, dword [eax + 0x4c]
test eax, eax
je case.default.0x48e5fe
mov ecx, dword [eax]
test ecx, ecx
je case.default.0x48e5fe
cmp ecx, edi
je 0x48e68b
mov ecx, dword [eax + 4]
add eax, 4
test ecx, ecx
jne 0x48e678
jmp case.default.0x48e5fe
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
dec eax
cmp eax, 9
ja case.0x48e6a0.5
movzx eax, byte [eax + 0x48ebd8]
jmp dword [eax*4 + 0x48ebc8]
mov eax, 1
jmp 0x48e6be
mov eax, 4
jmp 0x48e6be
mov eax, 2
jmp 0x48e6be
xor eax, eax
cmp dword [esp + 0x14], eax
je 0x48e710
jmp case.default.0x48e5fe
jge 0x48eb93
lea eax, [ecx - 1]
cmp eax, 9
ja case.0x48e6de.5
movzx eax, byte [eax + 0x48ebf4]
jmp dword [eax*4 + 0x48ebe4]
mov dword [esp + 0x18], 1
jmp 0x48e70c
mov dword [esp + 0x18], 4
mov edi, 4
jmp 0x48e70c
mov dword [esp + 0x18], 2
jmp 0x48e70c
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x10]
movzx ecx, byte [ebx]
movzx eax, byte [ebx + 1]
add ebx, 2
shl ecx, 8
or ecx, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], ebx
lea eax, [ebx + ecx]
cmp edx, eax
je 0x48e77f
cmp dword [esi], 0
je 0x48e765
mov eax, dword [esi + 0xa0]
mov ecx, esi
mov dword [esi + 0xa4], 0x15
mov dword [esi + 0xa8], 2
mov byte [eax], 2
mov eax, dword [esi + 0xa0]
mov byte [eax + 1], 0x32
call fcn.0047c140
mov eax, 0xffff8500
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.004b992a
mov esp, ebp
pop ebp
ret
test edi, edi
jne 0x48e8d0
push 0x40
lea eax, [esp + 0xb4]
push edi
push eax
call fcn.004bc0b0
add esp, 0xc
lea eax, [esp + 0x54]
push 0x40
push edi
push eax
call fcn.004bc0b0
mov edx, dword [esi + 0x38]
lea ecx, [esp + 0xa4]
add esp, 0xc
mov dword [esp + 0x10], 0x24
add edx, 0x3dc
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], 0x67452301
push 0x40
mov dword [esp + 0xa8], 0xefcdab89
mov dword [esp + 0xac], 0x98badcfe
mov dword [esp + 0xb0], 0x10325476
call fcn.00482230
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x9c]
add esp, 4
push dword [esp + 0x20]
call fcn.00482230
add esp, 4
lea edx, [esp + 0xf0]
lea ecx, [esp + 0x98]
call fcn.004822e0
mov edx, dword [esi + 0x38]
lea ecx, [esp + 0x38]
push 0x40
add edx, 0x3dc
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], 0x67452301
mov dword [esp + 0x48], 0xefcdab89
mov dword [esp + 0x4c], 0x98badcfe
mov dword [esp + 0x50], 0x10325476
mov dword [esp + 0x54], 0xc3d2e1f0
call fcn.00483850
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x3c]
add esp, 4
push dword [esp + 0x20]
call fcn.00483850
add esp, 4
lea edx, [esp + 0x100]
lea ecx, [esp + 0x38]
call fcn.00483900
mov eax, 0x58
lea ecx, [esp + 0x98]
mov byte [ecx], 0
lea ecx, [ecx + 1]
sub eax, 1
jne 0x48e8a7
mov eax, 0x5c
lea ecx, [esp + 0x38]
nop dword [eax + eax]
mov byte [ecx], 0
lea ecx, [ecx + 1]
sub eax, 1
jne 0x48e8c0
jmp 0x48e9a3
xor eax, eax
xorps xmm0, xmm0
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], eax
lea eax, [edi - 3]
movq qword [esp + 0x2c], xmm0
cmp eax, 5
ja case.default.0x48e8ef
jmp dword [eax*4 + 0x48ec00]
mov ebx, 0x4f63d8
jmp 0x48e91e
mov ebx, 0x4f62e8
jmp 0x48e91e
mov ebx, 0x4f63a8
jmp 0x48e91e
mov ebx, 0x4f6318
jmp 0x48e91e
mov ebx, 0x4f6378
jmp 0x48e91e
mov ebx, 0x4f6348
mov eax, dword [ebx + 0x20]
call eax
mov dword [esp + 0x30], eax
test eax, eax
jne 0x48e935
mov edi, 0xffffae80
jmp 0x48eb49
push eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x30], ebx
call eax
mov eax, dword [esi + 0x38]
add esp, 4
add eax, 0x3dc
push 0x40
push eax
push dword [esp + 0x38]
mov eax, dword [ebx + 0x14]
call eax
mov eax, dword [ebx + 0x14]
add esp, 0xc
push dword [esp + 0x20]
push dword [esp + 0x20]
push dword [esp + 0x38]
call eax
add esp, 0xc
lea eax, [esp + 0xf0]
push eax
push dword [esp + 0x34]
mov eax, dword [ebx + 0x18]
call eax
push dword [esp + 0x38]
mov eax, dword [ebx + 0x24]
call eax
add esp, 0xc
lea ecx, [esp + 0x2c]
xor edx, edx
mov eax, 0xc
mov byte [ecx], dl
lea ecx, [ecx + 1]
sub eax, 1
jne 0x48e995
mov ebx, dword [esp + 0x24]
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 0x64]
test eax, eax
jne 0x48e9f9
cmp dword [esi], eax
je 0x48e9df
mov eax, dword [esi + 0xa0]
mov ecx, esi
mov dword [esi + 0xa4], 0x15
mov dword [esi + 0xa8], 2
mov byte [eax], 2
mov eax, dword [esi + 0xa0]
mov byte [eax + 1], 0x28
call fcn.0047c140
mov eax, 0xffff8900
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.004b992a
mov esp, ebp
pop ebp
ret
add eax, 0xbc
je 0x48eaf7
mov eax, dword [eax]
test eax, eax
je 0x48eaf7
push dword [esp + 0x18]
mov eax, dword [eax + 0xc]
call eax
add esp, 4
test eax, eax
je 0x48eaf7
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 0x64]
add eax, 0xbc
mov dword [esp + 0x20], eax
je 0x48eaa4
mov eax, dword [eax]
mov dword [esp + 0x24], eax
test eax, eax
je 0x48eaa4
lea edx, [esp + 0x1c]
mov ecx, edi
call fcn.00488830
test eax, eax
jne 0x48eaa4
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x48ea66
mov edi, 0xffffc100
jmp 0x48eaa9
push dword [esp + 0x28]
lea eax, [esp + 0xf4]
push ebx
push dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x30]
push edi
push dword [eax + 4]
call ecx
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48eaa9
inc dword [esi + 4]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.004b992a
mov esp, ebp
pop ebp
ret
mov edi, 0xffffc180
cmp dword [esi], 0
je 0x48eb7c
mov eax, dword [esi + 0xa0]
mov ecx, esi
mov dword [esi + 0xa4], 0x15
mov dword [esi + 0xa8], 2
mov byte [eax], 2
mov eax, dword [esi + 0xa0]
mov byte [eax + 1], 0x33
call fcn.0047c140
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.004b992a
mov esp, ebp
pop ebp
ret
cmp dword [esi], 0
je 0x48eb2a
mov eax, dword [esi + 0xa0]
mov ecx, esi
mov dword [esi + 0xa4], 0x15
mov dword [esi + 0xa8], 2
mov byte [eax], 2
mov eax, dword [esi + 0xa0]
mov byte [eax + 1], 0x28
call fcn.0047c140
mov eax, 0xffff9300
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.004b992a
mov esp, ebp
pop ebp
ret
mov edi, 0xffffaf00
cmp dword [esi], 0
je 0x48eb7c
mov ecx, dword [esi + 0xa0]
mov dword [esi + 0xa4], 0x15
mov dword [esi + 0xa8], 2
mov byte [ecx], 2
mov ecx, dword [esi + 0xa0]
mov byte [ecx + 1], 0x50
mov ecx, esi
call fcn.0047c140
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.004b992a
mov esp, ebp
pop ebp
ret
mov eax, 0xffff9400
mov ecx, dword [esp + 0x134]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004b992a
mov esp, ebp
pop ebp
ret