Function at 0x513180
Capabilities:
Hash data using djb2

Disassembly:
push 0xffffffffffffffff
push 0x6df815
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5ec
push ebx
xor eax, eax
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov ebp, 0x10000000
mov dword [esp + 0x600], eax
mov dword [esp + 0x10], ebp
call fcn.006287f0
lea ecx, [esp + 0x2c]
call fcn.0064c690
mov ecx, 0x77f8a0
mov byte [esp + 0x600], 2
call fcn.00652f90
test eax, eax
push esi
je 0x513207
lea eax, [esp + 0x10]
push str._sTweak_MP_General.txt
push eax
call fcn.00626a10
add esp, 0xc
mov byte [esp + 0x600], 3
jmp 0x513221
lea ecx, [esp + 0x10]
push str._sTweak_General.txt
push ecx
call fcn.00626a10
add esp, 0xc
mov byte [esp + 0x600], 4
mov eax, dword [eax]
lea esi, [esp + 0x2c]
call fcn.0064c590
mov ebx, eax
neg ebx
sbb bl, bl
mov byte [esp + 0x600], 2
mov eax, dword [esp + 0xc]
inc bl
call fcn.00626990
test bl, bl
je 0x51326a
mov ecx, esi
call fcn.0064c770
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x5ec]
mov dword fs:[0], ecx
add esp, 0x5f8
ret
push edi
push 0x38f
lea edi, [esp + 0x20]
call fcn.005137e0
mov edx, dword [esp + 0x38]
cmp edx, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
jge 0x5133b8
jmp 0x513290
lea ecx, [esp + 0x30]
call fcn.0064ccb0
lea eax, [esp + 0x194]
push 0x70a557
push eax
call fcn.00625d90
add esp, 8
test eax, eax
jne 0x5132c0
lea eax, [esp + 0x30]
call fcn.0064c8a0
jmp 0x5133aa
xor eax, eax
jmp 0x5132d0
mov cl, byte [esp + eax + 0x194]
mov byte [esp + eax + 0x5bc], cl
inc eax
test cl, cl
jne 0x5132d0
movsx eax, byte [esp + 0x194]
test eax, eax
lea edx, [esp + 0x194]
mov ecx, 0x1505
je 0x51331a
jmp 0x513300
inc edx
cmp eax, 0x61
jl 0x51330e
cmp eax, 0x7a
jg 0x51330e
sub eax, 0x20
imul ecx, ecx, 0x21
xor ecx, eax
movsx eax, byte [edx]
test eax, eax
jne 0x513300
xor ecx, ebp
and ecx, 0xfffffff
xor ebp, ecx
xor eax, eax
test edi, edi
mov dword [esp + 0x14], ebp
jle 0x51333e
mov edi, edi
mov ecx, dword [esp + 0x1c]
cmp ebp, dword [ecx + eax*8]
je 0x51333e
inc eax
cmp eax, edi
jl 0x513330
cmp eax, edi
je 0x51334d
lea eax, [esp + 0x30]
call fcn.0064c8a0
jmp 0x5133aa
lea ecx, [esp + 0x30]
call fcn.0064ccb0
lea eax, [esp + 0x194]
call fcn.006263d0
mov eax, 1
mov dword [esp + 0x190], eax
mov dword [esp + 0x59c], eax
lea eax, [esp + 0x14]
cvttss2si edx, xmm0
push eax
lea esi, [esp + 0x20]
movss dword [esp + 0x598], xmm0
mov dword [esp + 0x59c], edx
movss dword [esp + 0x1c], xmm0
call fcn.005136c0
lea eax, [esp + 0x30]
call fcn.0064c8a0
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
cmp ecx, dword [esp + 0x30]
jl 0x513290
lea esi, [esp + 0x30]
call fcn.0064c7f0
lea edx, [edi*8 + 4]
push edx
call fcn.00685d18
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x604], 5
je 0x5133fd
push fcn.00668d30
push 0x513170
push edi
lea esi, [eax + 4]
push 8
push esi
mov dword [eax], edi
call fcn.00686002
mov ebx, esi
jmp 0x5133ff
xor ebx, ebx
xor ecx, ecx
test edi, edi
jle 0x513423
mov esi, dword [esp + 0x1c]
mov edx, esi
lea eax, [ebx + 4]
sub edx, ebx
mov ebp, dword [esi + ecx*8]
mov dword [eax - 4], ebp
mov ebp, dword [edx + eax]
mov dword [eax], ebp
inc ecx
add eax, 8
cmp ecx, edi
jl 0x513410
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x14]
mov ebp, dword [0x7c1978]
mov esi, dword [0x7c197c]
mov ecx, dword [esp + 0x18]
sub eax, ebp
sbb ecx, esi
mov esi, dword [0x956cac]
cmp ecx, esi
jg 0x513466
mov edx, dword [0x956ca8]
jl 0x51345c
cmp eax, edx
jae 0x513466
add edx, 1
adc esi, 0
mov eax, edx
mov ecx, esi
push 8
push edi
mov dword [0x956ca8], eax
mov dword [0x956cac], ecx
push ebx
mov eax, str.TWDATA
mov ecx, 0x91a408
call fcn.0050e9f0
mov eax, dword [esp + 0x34]
test eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebp, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
je 0x5134ef
mov esi, eax
mov eax, dword [0x80edc8]
test eax, eax
jne 0x5134be
push 0x7c2190
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [0x80edc8], 1
push 0x7c2190
call ebx
push 0x80ed7c
call edi
push esi
call fcn.0068662d
add esp, 4
push 0x80ed7c
call ebp
push 0x7c2190
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x34], 0
mov esi, dword [esp + 0x5b0]
test esi, esi
je 0x51354c
mov eax, dword [0x80edc8]
test eax, eax
jne 0x513518
push 0x7c2190
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [0x80edc8], 1
push 0x7c2190
call ebx
push 0x80ed7c
call edi
push esi
call fcn.0068662d
add esp, 4
push 0x80ed7c
call ebp
push 0x7c2190
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x5b0], 0
or eax, 0xffffffff
mov dword [esp + 0x5a8], eax
mov dword [esp + 0x5ac], eax
mov dword [esp + 0x604], eax
cmp dword [esp + 0x28], 2
mov dword [esp + 0x5a4], 0
pop edi
je 0x51359c
mov eax, dword [esp + 0x18]
test eax, eax
je 0x51359c
mov ecx, dword [eax - 4]
lea esi, [eax - 4]
push fcn.00668d30
push ecx
push 8
push eax
call fcn.00685fa2
push esi
call fcn.00685b4c
add esp, 4
mov ecx, dword [esp + 0x5f8]
pop esi
pop ebp
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x5f8
ret