Function at 0x4ba540
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
push ebx
mov ebx, dword [0x4f37a8]
mov dword [ebp - 0x18], ecx
mov byte [ebp - 4], 0
push esi
push edi
test ebx, ebx
jne 0x4ba5e5
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 0x14], eax
mov edx, eax
mov dword [ebp - 8], ecx
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0xc], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4ba5cc
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [ebp - 0xc]
imul eax, eax, 0x1000193
mov dword [ebp - 0xc], eax
cmp edi, ebx
jne 0x4ba594
cmp eax, 0xc0323159
je 0x4baa73
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 8], ecx
cmp eax, edx
je 0x4ba5dd
cmp dword [ecx + 0x18], 0
jne 0x4ba576
xor ebx, ebx
mov dword [0x4f37a8], ebx
mov eax, dword [0x4fbe10]
test eax, eax
jne 0x4ba682
test ebx, ebx
je 0x4ba67b
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [eax + ebx + 0x7c]
mov dword [ebp - 0x20], eax
lea eax, [ecx + ebx]
mov dword [ebp - 0xc], eax
cmp eax, ebx
je 0x4ba67b
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [eax + 0x18], ecx
je 0x4ba67b
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0x14], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4ba669
movsx ecx, dl
lea esi, [esi + 1]
sub dl, 0x41
mov eax, ecx
or eax, 0x20
cmp dl, 0x19
mov dl, byte [esi - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test dl, dl
jne 0x4ba634
mov ecx, dword [ebp - 8]
cmp edi, 0x5bb57373
je 0x4baa7e
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
add eax, 4
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], eax
cmp ecx, dword [edx + 0x18]
jne 0x4ba624
xor eax, eax
mov dword [0x4fbe10], eax
push 0
call eax
mov ebx, dword [0x4f37a8]
mov dword [ebp - 0x1c], eax
test ebx, ebx
jne 0x4ba721
mov ecx, dword fs:[0x30]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0xc], eax
mov edx, eax
mov dword [ebp - 8], ecx
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0x14], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4ba708
nop
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [ebp - 0x14]
imul eax, eax, 0x1000193
mov dword [ebp - 0x14], eax
cmp edi, ebx
jne 0x4ba6d0
cmp eax, 0xc0323159
je 0x4baa9b
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 8], ecx
cmp eax, edx
je 0x4ba719
cmp dword [ecx + 0x18], 0
jne 0x4ba6b0
xor ebx, ebx
mov dword [0x4f37a8], ebx
mov eax, dword [0x4fbe10]
test eax, eax
jne 0x4ba7be
test ebx, ebx
je 0x4ba7b7
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [eax + ebx + 0x7c]
mov dword [ebp - 0x20], eax
lea eax, [ecx + ebx]
mov dword [ebp - 0xc], eax
cmp eax, ebx
je 0x4ba7b7
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [eax + 0x18], ecx
je 0x4ba7b7
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0x14], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4ba7a5
movsx ecx, dl
lea esi, [esi + 1]
sub dl, 0x41
mov eax, ecx
or eax, 0x20
cmp dl, 0x19
mov dl, byte [esi - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test dl, dl
jne 0x4ba770
mov ecx, dword [ebp - 8]
cmp edi, 0x5bb57373
je 0x4baaa6
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
add eax, 4
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], eax
cmp ecx, dword [edx + 0x18]
jne 0x4ba760
xor eax, eax
mov dword [0x4fbe10], eax
push 1
mov dword [ebp - 0x4c], 0xffffff8d
call eax
mov esi, 0xffefefef
mov dword [ebp - 0x44], 0xe0
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], 0xa8
mov dword [ebp - 0x20], esi
movd xmm0, eax
lea eax, [ebp - 0x20]
cvtdq2pd xmm0, xmm0
push eax
mulsd xmm0, qword [0x40cf08]
movsd qword [ebp - 0x10], xmm0
addsd xmm0, qword [0x40cf58]
cvttsd2si edi, xmm0
mov dword [ebp - 0x48], edi
call fcn.00416720
movups xmm0, xmmword [ebp - 0x4c]
sub esp, 0x10
mov eax, esp
push ecx
push esi
mov esi, dword [ebp - 0x18]
movups xmmword [eax], xmm0
lea eax, [ebp - 0x30]
push eax
push esi
call fcn.0041adc0
lea ecx, [ebp - 0x30]
call fcn.00416240
cvttsd2si ebx, qword [ebp - 0x10]
push 0xef
push 0xef
push 0xef
push 0xba
push 0xb1
push ebx
push 0xffffffffffffffa6
push esi
call fcn.0041afa0
test eax, eax
jne 0x4ba927
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x40cf38]
push 0xf8
push 0xf8
push 0xf8
push 0x5e
cvttsd2si eax, xmm0
push 0x67
push eax
push 0xffffffffffffffca
push esi
call fcn.0041afa0
test eax, eax
jne 0x4ba927
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x40cf60]
push 0xf8
push 0xf8
push 0xf8
push 0x34
cvttsd2si eax, xmm0
push 0x33
push eax
push 0xffffffffffffffe5
push esi
call fcn.0041afa0
test eax, eax
jne 0x4ba927
movsd xmm0, qword [ebp - 0x10]
sub esp, 0xc
addsd xmm0, qword [0x40cf68]
mov dword [ebp - 0x64], 0xfffffffb
mov dword [ebp - 0x5c], 0x17
mov dword [ebp - 0x54], 0xffffffe1
cvttsd2si eax, xmm0
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x40cf70]
mov dword [ebp - 0x60], eax
cvttsd2si eax, xmm0
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x64]
push eax
push esi
call fcn.0041b050
mov ecx, dword [ebp - 4]
test eax, eax
movzx ecx, cl
mov eax, 1
cmove ecx, eax
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x3c]
add eax, 0xffffff92
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x4c], eax
mov esi, 0xffefefef
lea eax, [ebp - 0x14]
mov dword [ebp - 0x44], 0xe0
push eax
mov dword [ebp - 0x40], 0xa8
mov dword [ebp - 0x14], esi
call fcn.00416720
movups xmm0, xmmword [ebp - 0x4c]
sub esp, 0x10
mov eax, esp
push ecx
push esi
mov esi, dword [ebp - 0x18]
movups xmmword [eax], xmm0
lea eax, [ebp - 0x3c]
push eax
push esi
call fcn.0041adc0
lea ecx, [ebp - 0x3c]
call fcn.00416240
push 0xef
push 0xef
push 0xef
push 0xba
push 0xb1
push ebx
mov ebx, dword [ebp - 0x1c]
lea eax, [ebx - 0x55]
push eax
push esi
call fcn.0041afa0
test eax, eax
jne 0x4baac3
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x40cf38]
push 0xf8
push 0xf8
push 0xf8
push 0x5e
cvttsd2si eax, xmm0
push 0x67
push eax
lea eax, [ebx - 0x31]
push eax
push esi
call fcn.0041afa0
test eax, eax
jne 0x4baac3
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x40cf60]
push 0xf8
push 0xf8
push 0xf8
push 0x34
cvttsd2si eax, xmm0
push 0x33
push eax
lea eax, [ebx - 0x16]
push eax
push esi
call fcn.0041afa0
test eax, eax
jne 0x4baac3
movsd xmm1, qword [ebp - 0x10]
sub esp, 0xc
movaps xmm0, xmm1
mov dword [ebp - 0x7c], ebx
addsd xmm0, qword [0x40cf68]
addsd xmm1, qword [0x40cf70]
cvttsd2si eax, xmm0
cvttsd2si ecx, xmm1
mov dword [ebp - 0x78], eax
lea eax, [ebx + 0x1c]
mov dword [ebp - 0x74], eax
lea eax, [ebx - 0x1a]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x7c]
push eax
push esi
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x68], ecx
call fcn.0041b050
mov edx, dword [ebp - 4]
test eax, eax
mov eax, 1
movzx ecx, dl
cmove ecx, eax
mov al, cl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x18]
jmp 0x4ba5df
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebx]
add eax, ebx
jmp 0x4ba67d
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x18]
jmp 0x4ba71b
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebx]
add eax, ebx
jmp 0x4ba7b9
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret