Function at 0x4caa30
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x606de8
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x6af320]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push esi
push edi
mov eax, dword [0x6af320]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov ebx, ecx
mov edi, dword [ebp + 8]
xorps xmm0, xmm0
mov dword [esp + 0x34], 3
movq qword [esp + 0x28], xmm0
mov dword [esp + 0x30], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x54], 3
movq qword [esp + 0x48], xmm0
mov dword [esp + 0x50], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x64], 3
movq qword [esp + 0x58], xmm0
mov dword [esp + 0x60], 0
sub esp, 0x14
mov byte [esp + 0x8c], 3
movdqu xmm0, xmmword [edi + 0x78]
mov eax, esp
lea edx, [esp + 0x6c]
lea ecx, [ebx + 0x38]
movdqu xmmword [eax], xmm0
call fcn.004bce30
movdqu xmm0, xmmword [edi + 8]
mov eax, esp
lea edx, [esp + 0x5c]
lea ecx, [ebx + 0x38]
movdqu xmmword [eax], xmm0
call fcn.004bce30
movsd xmm0, qword [edi + 0x18]
add esp, 0x14
mov ecx, dword [ebx + 0x48]
movsd qword [esp + 0x14], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x1c], xmm0
test ecx, ecx
jne 0x4cab1e
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xbad_function_call_void_]
mov eax, dword [ecx]
lea edx, [esp + 0x14]
push edx
call dword [eax + 8]
cvttsd2si esi, qword [esp + 0x14]
lea ecx, [esp + 0x38]
call fcn.004305d0
mov eax, esi
test esi, esi
cdq
mov ecx, 0x1606
mov dword [esp + 0x38], eax
mov esi, 0x1606
mov eax, 0x3e06
mov dword [esp + 0x3c], edx
cmovns ecx, eax
mov dword [esp + 0x44], ecx
mov ecx, dword [edi]
mov eax, ecx
cdq
test ecx, ecx
mov dword [esp + 0x14], eax
mov eax, 0x3e06
cmovns esi, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
push ecx
lea eax, [esp + 0x18]
mov byte [esp + 0x7c], 4
push eax
mov edx, 0x63e48c
lea ecx, [esp + 0x30]
call fcn.0044e340
add esp, 8
mov byte [esp + 0x78], 3
lea ecx, [esp + 0x14]
call fcn.004305d0
push ecx
lea eax, [esp + 0x4c]
mov edx, str.origin
push eax
lea ecx, [esp + 0x30]
call fcn.0044e340
add esp, 4
lea eax, [esp + 0x3c]
mov edx, str.radius
lea ecx, [esp + 0x2c]
push eax
call fcn.0044e340
movzx ecx, word [edi + 0x20]
mov esi, 0x1606
mov eax, ecx
test ecx, ecx
cdq
mov dword [esp + 0x1c], eax
mov eax, 0x3e06
cmovns esi, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], esi
add esp, 4
mov byte [esp + 0x7c], 5
lea eax, [esp + 0x18]
mov edx, str.leftKey
lea ecx, [esp + 0x2c]
push eax
call fcn.0044e340
add esp, 8
mov byte [esp + 0x78], 3
lea ecx, [esp + 0x14]
call fcn.004305d0
movzx ecx, word [edi + 0x22]
mov esi, 0x1606
mov eax, ecx
test ecx, ecx
cdq
mov dword [esp + 0x14], eax
mov eax, 0x3e06
mov dword [esp + 0x18], edx
cmovns esi, eax
mov dword [esp + 0x20], esi
push ecx
lea eax, [esp + 0x18]
mov byte [esp + 0x7c], 6
push eax
mov edx, str.upKey
lea ecx, [esp + 0x30]
call fcn.0044e340
add esp, 8
mov byte [esp + 0x78], 3
lea ecx, [esp + 0x14]
call fcn.004305d0
movzx ecx, word [edi + 0x24]
mov esi, 0x1606
mov eax, ecx
test ecx, ecx
cdq
mov dword [esp + 0x14], eax
mov eax, 0x3e06
cmovns esi, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
push ecx
lea eax, [esp + 0x18]
mov byte [esp + 0x7c], 7
push eax
mov edx, str.rightKey
lea ecx, [esp + 0x30]
call fcn.0044e340
add esp, 8
mov byte [esp + 0x78], 3
lea ecx, [esp + 0x14]
call fcn.004305d0
movzx ecx, word [edi + 0x26]
mov esi, 0x1606
mov eax, ecx
test ecx, ecx
cdq
mov dword [esp + 0x14], eax
mov eax, 0x3e06
cmovns esi, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
push ecx
lea eax, [esp + 0x18]
mov byte [esp + 0x7c], 8
push eax
mov edx, str.downKey
lea ecx, [esp + 0x30]
call fcn.0044e340
add esp, 8
mov byte [esp + 0x78], 3
lea ecx, [esp + 0x14]
call fcn.004305d0
lea edx, [edi + 0x28]
mov dword [esp + 0x20], 0
mov byte [esp + 0x78], 9
cmp dword [edx + 0x14], 8
jb 0x4cad13
mov edx, dword [edx]
push ecx
lea ecx, [esp + 0x18]
call fcn.0044e270
lea eax, [esp + 0x18]
mov edx, str.description
push eax
lea ecx, [esp + 0x30]
call fcn.0044e340
add esp, 8
mov byte [esp + 0x78], 3
lea ecx, [esp + 0x14]
call fcn.004305d0
lea edx, [edi + 0x40]
mov dword [esp + 0x20], 0
mov byte [esp + 0x78], 0xa
cmp dword [edx + 0x14], 8
jb 0x4cad59
mov edx, dword [edx]
push ecx
lea ecx, [esp + 0x18]
call fcn.0044e270
lea eax, [esp + 0x18]
mov edx, str.moreDescription
push eax
lea ecx, [esp + 0x30]
call fcn.0044e340
add esp, 8
mov byte [esp + 0x78], 3
lea ecx, [esp + 0x14]
call fcn.004305d0
lea edx, [edi + 0x58]
mov dword [esp + 0x20], 0
mov byte [esp + 0x78], 0xb
cmp dword [edx + 0x14], 8
jb 0x4cad9f
mov edx, dword [edx]
push ecx
lea ecx, [esp + 0x18]
call fcn.0044e270
lea eax, [esp + 0x18]
mov edx, str.extraData
push eax
lea ecx, [esp + 0x30]
call fcn.0044e340
add esp, 8
mov byte [esp + 0x78], 3
lea ecx, [esp + 0x14]
call fcn.004305d0
mov al, byte [edi + 0x70]
xor ecx, ecx
test al, al
setne cl
add ecx, 0x101
mov dword [esp + 0x20], ecx
push ecx
lea eax, [esp + 0x18]
mov byte [esp + 0x7c], 0xc
push eax
mov edx, str.hintVisible
lea ecx, [esp + 0x30]
call fcn.0044e340
add esp, 8
mov byte [esp + 0x78], 3
lea ecx, [esp + 0x14]
call fcn.004305d0
push ecx
lea eax, [esp + 0x5c]
mov edx, str.hintOffset
push eax
lea ecx, [esp + 0x30]
call fcn.0044e340
cmp dword [0x6b02e0], 0x10
mov ecx, 0x6b02cc
cmovae ecx, dword [0x6b02cc]
sub esp, 8
mov edx, esp
mov eax, ecx
cmp byte [ecx], 0
je 0x4cae46
mov edi, edi
inc eax
cmp byte [eax], 0
jne 0x4cae40
sub eax, ecx
mov dword [edx], ecx
mov dword [edx + 0xc], 0x100005
lea ecx, [ebx + 0x50]
mov dword [edx + 4], eax
lea edx, [esp + 0x38]
call fcn.004c80d0
add esp, 0x10
mov byte [esp + 0x78], 2
lea ecx, [esp + 0x58]
call fcn.004305d0
lea ecx, [esp + 0x38]
mov byte [esp + 0x78], 1
call fcn.004305d0
lea ecx, [esp + 0x48]
mov byte [esp + 0x78], 0
call fcn.004305d0
lea ecx, [esp + 0x28]
mov dword [esp + 0x78], 0xffffffff
call fcn.004305d0
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.005f24e0
mov esp, ebp
pop ebp
ret 4