Function at 0x4a3f80
Capabilities:
Resolve function by brute ratel badger hash

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
movd xmm0, dword [ebp + 8]
movd eax, xmm0
mov ecx, eax
not ecx
test ecx, 0x7f800000
jne 0x4a3faf
movdqa xmm1, xmm0
mulss xmm1, xmm0
addss xmm0, xmm1
jmp 0x4a43bb
test eax, eax
jle 0x4a3fc1
cmp eax, 0x800000
jb 0x4a3fd9
mov edx, eax
shr edx, 0x17
jmp 0x4a3feb
movd ecx, xmm0
test ecx, 0x7fffffff
je 0x4a43bb
test eax, eax
js 0x4a43cb
bsr ecx, eax
mov edx, ecx
not cl
xor edx, 0xffffffe0
add cl, 0x18
shl eax, cl
add edx, 0xa
add edx, 0xffffff81
and eax, 0x7fffff
xor ebx, ebx
mov ecx, edx
or eax, 0x800000
mov dword [ebp - 0x28], edx
and cl, 1
shl eax, cl
cmp eax, 0x1200000
lea ecx, [eax*4]
lea edx, [eax*4 - 0x2800000]
setae bl
cmovb edx, ecx
xor edi, edi
mov eax, ebx
lea ecx, [edx + edx - 0x4000000]
mov dword [ebp - 0x24], ebx
xor ebx, ebx
shl eax, 0x18
lea edx, [eax + 0x2400000]
lea esi, [eax + 0x2000000]
or eax, 0x2800000
cmp edx, ecx
cmovg edx, edi
cmovg eax, esi
setle bl
xor edi, edi
sub ecx, edx
lea esi, [eax + 0x200000]
mov dword [ebp - 0x20], ebx
xor ebx, ebx
lea edx, [eax + 0x400000]
add ecx, ecx
cmp esi, ecx
cmovg esi, edi
cmovg edx, eax
setle bl
mov edi, 0
sub ecx, esi
lea esi, [edx + 0x100000]
mov dword [ebp - 0x1c], ebx
xor ebx, ebx
lea eax, [edx + 0x200000]
add ecx, ecx
cmp esi, ecx
cmovg esi, edi
cmovg eax, edx
setle bl
sub ecx, esi
lea edx, [eax + 0x80000]
mov dword [ebp - 0x18], ebx
xor ebx, ebx
lea esi, [eax + 0x100000]
add ecx, ecx
cmp edx, ecx
cmovg edx, edi
cmovg esi, eax
setle bl
sub ecx, edx
lea edi, [esi + 0x40000]
mov dword [ebp - 0x14], ebx
xor ebx, ebx
xor edx, edx
lea eax, [esi + 0x80000]
add ecx, ecx
cmp edi, ecx
cmovg edi, ebx
cmovg eax, esi
setle dl
sub ecx, edi
lea edi, [eax + 0x20000]
add ecx, ecx
mov esi, edi
cmp edi, ecx
cmovg esi, ebx
xor ebx, ebx
cmp edi, ecx
lea edi, [eax + 0x40000]
mov dword [ebp - 0x10], esi
cmovg edi, eax
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x20]
setle bl
shl edx, 0x12
sub ecx, dword [ebp - 0x10]
shl ebx, 0x11
shl eax, 0x17
shl esi, 0x16
or esi, eax
mov eax, dword [ebp - 0x1c]
add ecx, ecx
shl eax, 0x15
or eax, esi
mov esi, dword [ebp - 0x18]
shl esi, 0x14
or esi, eax
mov eax, dword [ebp - 0x14]
shl eax, 0x13
or eax, esi
lea esi, [edi + 0x20000]
or edx, eax
lea eax, [edi + 0x10000]
or ebx, edx
xor edx, edx
or ebx, 0x1000000
cmp eax, ecx
cmovg esi, edi
mov edi, 0
setle dl
cmovg eax, edi
shl edx, 0x10
lea edi, [esi + 0x10000]
sub ecx, eax
add edx, ebx
lea ebx, [esi + 0x8000]
xor eax, eax
add ecx, ecx
cmp ebx, ecx
cmovg edi, esi
mov esi, 0
setle al
cmovg ebx, esi
shl eax, 0xf
lea esi, [edi + 0x8000]
sub ecx, ebx
lea ebx, [edi + 0x4000]
add eax, edx
xor edx, edx
add ecx, ecx
cmp ebx, ecx
cmovg esi, edi
mov edi, 0
setle dl
cmovg ebx, edi
shl edx, 0xe
lea edi, [esi + 0x4000]
sub ecx, ebx
lea ebx, [esi + 0x2000]
add edx, eax
xor eax, eax
add ecx, ecx
cmp ebx, ecx
cmovg edi, esi
mov esi, 0
setle al
cmovg ebx, esi
shl eax, 0xd
lea esi, [edi + 0x2000]
sub ecx, ebx
lea ebx, [edi + 0x1000]
add eax, edx
xor edx, edx
add ecx, ecx
cmp ebx, ecx
cmovg esi, edi
mov edi, 0
setle dl
cmovg ebx, edi
shl edx, 0xc
lea edi, [esi + 0x1000]
sub ecx, ebx
lea ebx, [esi + 0x800]
add edx, eax
xor eax, eax
add ecx, ecx
cmp ebx, ecx
cmovg edi, esi
mov esi, 0
setle al
cmovg ebx, esi
shl eax, 0xb
lea esi, [edi + 0x800]
sub ecx, ebx
lea ebx, [edi + 0x400]
add eax, edx
xor edx, edx
add ecx, ecx
cmp ebx, ecx
cmovg esi, edi
mov edi, 0
setle dl
cmovg ebx, edi
shl edx, 0xa
lea edi, [esi + 0x400]
sub ecx, ebx
lea ebx, [esi + 0x200]
add edx, eax
xor eax, eax
add ecx, ecx
cmp ebx, ecx
cmovg edi, esi
mov esi, 0
setle al
cmovg ebx, esi
shl eax, 9
lea esi, [edi + 0x200]
sub ecx, ebx
lea ebx, [edi + 0x100]
add eax, edx
xor edx, edx
add ecx, ecx
cmp ebx, ecx
cmovg esi, edi
mov edi, 0
setle dl
cmovg ebx, edi
shl edx, 8
lea edi, [esi + 0x100]
sub ecx, ebx
lea ebx, [esi + 0x80]
add edx, eax
xor eax, eax
add ecx, ecx
cmp ebx, ecx
cmovg edi, esi
mov esi, 0
setle al
cmovg ebx, esi
shl eax, 7
lea esi, [edi + 0x80]
sub ecx, ebx
lea ebx, [edi + 0x40]
add eax, edx
xor edx, edx
add ecx, ecx
cmp ebx, ecx
cmovg esi, edi
mov edi, 0
setle dl
cmovg ebx, edi
shl edx, 6
lea edi, [esi + 0x40]
sub ecx, ebx
lea ebx, [esi + 0x20]
add edx, eax
xor eax, eax
add ecx, ecx
cmp ebx, ecx
cmovg edi, esi
mov esi, 0
setle al
cmovg ebx, esi
shl eax, 5
lea esi, [edi + 0x10]
sub ecx, ebx
add eax, edx
xor ebx, ebx
lea edx, [edi + 0x20]
add ecx, ecx
cmp esi, ecx
cmovg edx, edi
setle bl
mov edi, edx
mov edx, 0
cmovg esi, edx
shl ebx, 4
xor edx, edx
sub ecx, esi
add ebx, eax
lea eax, [edi + 8]
add ecx, ecx
cmp eax, ecx
setle dl
lea esi, [ebx + edx*8]
mov edx, edi
lea edi, [edi + 0x10]
cmovg edi, edx
mov edx, 0
cmovg eax, edx
lea edx, [edi + 4]
xor ebx, ebx
sub ecx, eax
lea eax, [edi + 8]
add ecx, ecx
cmp edx, ecx
cmovg eax, edi
mov edi, 0
setle bl
cmovg edx, edi
lea edi, [eax + 2]
lea esi, [esi + ebx*4]
xor ebx, ebx
sub ecx, edx
lea edx, [eax + 4]
add ecx, ecx
cmp edi, ecx
cmovg edx, eax
mov eax, 0
setle bl
cmovg edi, eax
xor eax, eax
lea esi, [esi + ebx*2]
sub ecx, edi
lea edi, [ecx + ecx]
lea ecx, [ecx + ecx - 1]
cmp edx, edi
mov edi, 0xffffffff
cmovl edi, edx
setl al
add eax, esi
cmp edi, ecx
setne cl
mov edx, eax
and dl, cl
movzx ecx, dl
add ecx, eax
mov eax, dword [ebp - 0x28]
shr ecx, 1
and eax, 0xfffffffe
shl eax, 0x16
lea eax, [eax + ecx + 0x3f000000]
movd xmm0, eax
movss dword [ebp - 0x2c], xmm0
fld dword [ebp - 0x2c]
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
movss xmm0, dword [0x4df830]
jmp 0x4a43bb