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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x50b043
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x53bbf0]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x38], esi
mov ecx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x48]
mov dword [esi + 0xac], ecx
mov ecx, dword [ebp + 0x38]
mov dword [esi + 0x7c], eax
mov eax, dword [ebp + 0x3c]
xor ebx, ebx
mov dword [esi + 0x10], ecx
mov ecx, dword [ebp + 0x30]
mov dword [esi + 0xb0], edx
mov dword [esi + 0x78], eax
mov eax, dword [ebp + 0x34]
or edx, 0xffffffff
cmp ecx, ebx
mov dword [esp + 0x50], ebx
mov dword [esi], vtable.ProjectileWeapon.0
mov dword [esi + 0xa8], ebx
mov dword [esi + 0x14], edx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], eax
mov dword [esi + 0x3c], ebx
jne 0x460fad
cmp eax, 0x1387
ja 0x460f9d
mov ecx, dword [0x563908]
mov ecx, dword [ecx + 0x1780]
mov ecx, dword [ecx + eax*4 + 0x3078]
jmp 0x460f9f
xor ecx, ecx
cmp ecx, ebx
mov dword [esi + 0x14], eax
je 0x460fad
movsx eax, word [ecx + 0x64]
mov dword [esi + 0x10], eax
mov ecx, dword [ebp + 8]
mov dword [esi + 0x38], ecx
movzx eax, word [ecx + 0x2fc]
cmp ax, bx
jne 0x460fc7
mov eax, dword [ecx + 0x80]
jmp 0x460fcc
movsx eax, ax
neg eax
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x58], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x6c], edx
imul eax, eax, 0x2710
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x74], ebx
mov edx, dword [ecx + 0x35c]
mov dword [esi + 0x68], edx
mov edx, dword [ebp + 0x14]
imul edx, edx, 0x2710
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
movsx eax, word [ecx + 0x31e]
add eax, dword [ebp + 0x18]
mov edx, dword [esi + 0x10]
imul eax, eax, 0x2710
cmp edx, ebx
mov dword [esi + 0x20], eax
mov dword [esi + 0xa4], ebx
jl 0x461088
cmp edx, 0x32
mov ebx, dword [0x563908]
jl 0x461047
mov eax, dword [ebx + 0x1a6ae]
cmp eax, 1
mov edi, 1
jl 0x461042
mov edi, eax
mov eax, edx
cdq
idiv edi
imul edx, edx, 0x26a
movsx edi, word [edx + ebx + 0x12e30]
lea eax, [edx + ebx + 0x12dfa]
movsx edx, word [eax + 0x38]
movsx eax, word [eax + 0x34]
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], edi
mov byte [esp + 0x14], dl
mov dl, byte [esp + 0x20]
mov byte [esp + 0x15], dl
mov byte [esp + 0x16], al
mov eax, dword [esp + 0x14]
mov dword [esi + 0xa4], eax
cmp dword [ebp + 0x40], ebx
mov edx, dword [ecx + 0x594]
mov dword [esi + 0x84], edx
mov eax, dword [ecx + 0x598]
mov dword [esi + 0x88], eax
mov edx, dword [ecx + 0x59c]
mov dword [esi + 0x9c], edx
mov eax, dword [ecx + 0x5a0]
mov dword [esi + 0xa0], eax
mov edx, dword [ecx + 0x5a4]
mov dword [esi + 0x8c], edx
mov eax, dword [ecx + 0x5a8]
mov dword [esi + 0x90], eax
mov edx, dword [ecx + 0x58c]
mov dword [esi + 0x94], edx
mov eax, dword [ecx + 0x590]
mov dword [esi + 0x98], eax
jne 0x461109
mov ecx, dword [ecx + 0x5b4]
cmp ecx, ebx
je 0x461109
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
push ebx
push ebx
push ebx
push ebx
push ebx
push edx
push eax
call fcn.004a6e90
mov edi, dword [esi + 0x38]
mov ecx, dword [edi + 0x5bc]
mov dword [esi + 0x80], ecx
movzx eax, word [edi + 0x326]
cmp ax, 1
jne 0x46113b
mov edx, dword [0x563908]
mov eax, dword [edx + 0xe17a]
lea eax, [eax + eax*4]
add eax, eax
mov dword [esi + 0x50], eax
jmp 0x461146
movsx eax, ax
lea ecx, [eax + eax*4]
add ecx, ecx
mov dword [esi + 0x50], ecx
movsx edx, word [edi + 0x32e]
mov dword [esi + 0x60], edx
movsx eax, word [edi + 0x33e]
cdq
xor eax, edx
sub eax, edx
mov dword [esi + 0x64], eax
cmp word [edi + 0x31a], bx
jge 0x4611f0
mov eax, dword [ebp + 0x28]
add eax, 0xb4
imul eax, eax, 0x3e8
cdq
mov ecx, 0x3a980
idiv ecx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fmul qword [0x5119b0]
fst qword [esp + 0x2c]
call fcn.004c4180
fstp qword [esp + 0x24]
fld qword [esp + 0x2c]
call fcn.004c42b0
fild dword [ebp + 0x1c]
movsx edx, word [edi + 0x31a]
neg edx
fmul st(1)
mov dword [esp + 0x20], edx
fild dword [ebp + 0x20]
fld qword [esp + 0x24]
fmul st(1), st(0)
fxch st(2)
faddp st(1)
fild dword [esp + 0x20]
fld st(1)
fmulp st(4)
fmul st(3), st(0)
fld qword [0x5146d8]
fdiv st(4), st(0)
fxch st(4)
call fcn.004c2db0
fxch st(1)
fmulp st(2)
mov dword [ebp + 0x1c], eax
fmulp st(1)
fdivrp st(1)
call fcn.004c2db0
jmp 0x461226
movsx ecx, word [edi + 0x31a]
mov edx, ecx
imul ecx, dword [ebp + 0x20]
imul edx, dword [ebp + 0x1c]
mov eax, 0x10624dd3
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp + 0x1c], eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx ecx, word [edi + 0x31c]
imul ecx, dword [ebp + 0x24]
mov dword [ebp + 0x20], eax
mov eax, 0x10624dd3
imul ecx
mov eax, dword [esi + 0x78]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x28]
add eax, 0xb4
imul eax, eax, 0x3e8
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cdq
mov ecx, 0x3a980
idiv ecx
movsx eax, word [edi + 0x320]
movsx ecx, word [edi + 0x322]
sub ecx, eax
test ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
mov dword [esp + 0x14], eax
fmul qword [0x5119b0]
jle 0x4612d2
mov eax, dword [esp + 0x20]
imul eax, eax, 0x2455
add eax, 0xc091
cdq
mov ecx, 0x38f40
idiv ecx
mov eax, edx
imul eax, eax, 0x2455
add eax, 0xc091
mov dword [esp + 0x24], edx
cdq
idiv ecx
mov eax, edx
mov dword [esp + 0x20], eax
shl eax, 0xc
xor eax, dword [esp + 0x24]
cdq
xor eax, edx
sub eax, edx
cdq
idiv dword [esp + 0x2c]
add dword [esp + 0x14], edx
cmp word [edi + 0x32a], 0xfc18
fild dword [esp + 0x14]
fld qword [0x516038]
fmul st(1), st(0)
fld qword [0x512168]
fmul st(2), st(0)
fld qword [0x511308]
fdiv st(3), st(0)
fxch st(3)
faddp st(4)
fxch st(3)
fst qword [esp + 0x3c]
jne 0x461308
fild dword [esi + 0x7c]
jmp 0x46136a
movsx ecx, word [edi + 0x32a]
movsx eax, word [edi + 0x32c]
sub eax, ecx
test eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ecx
jle 0x461366
mov eax, dword [esp + 0x20]
imul eax, eax, 0x2455
add eax, 0xc091
cdq
mov ecx, 0x38f40
idiv ecx
mov eax, edx
imul eax, eax, 0x2455
add eax, 0xc091
mov dword [esp + 0x2c], edx
cdq
idiv ecx
mov eax, edx
shl eax, 0xc
xor eax, dword [esp + 0x2c]
cdq
xor eax, edx
sub eax, edx
cdq
idiv dword [esp + 0x24]
add dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmulp st(2)
fxch st(1)
fmulp st(3)
fxch st(2)
fdivrp st(1)
fstp qword [esp + 0x14]
call fcn.004c4180
fstp qword [esp + 0x24]
fld qword [esp + 0x3c]
call fcn.004c42b0
fstp qword [esp + 0x3c]
fld qword [esp + 0x14]
call fcn.004c42b0
movsx eax, word [edi + 0x324]
lea edx, [eax + eax*4]
add edx, edx
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
fmulp st(1)
call fcn.004c2db0
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fld qword [esp + 0x3c]
fmul st(1)
call fcn.004c2db0
fmul qword [esp + 0x24]
mov ecx, dword [ebp + 0x1c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov dword [esp + 0x20], eax
mov dword [esi + 0x40], eax
call fcn.004c2db0
fld qword [esp + 0x14]
mov ecx, dword [ebp + 0x20]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*2]
mov dword [esp + 0x24], eax
mov dword [esi + 0x44], eax
call fcn.004c4180
movsx eax, word [edi + 0x324]
lea eax, [eax + eax*4]
add eax, eax
mov dword [esp + 0x2c], eax
lea ecx, [ebx + ebx*4]
fild dword [esp + 0x2c]
add ecx, ecx
mov dword [esp + 0x2c], ecx
fmulp st(1)
fild dword [esp + 0x2c]
faddp st(1)
call fcn.004c2db0
fild dword [esp + 0x24]
mov dword [esi + 0x48], eax
fst qword [esp + 0x2c]
fild dword [esp + 0x20]
fst qword [esp + 0x3c]
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
call fcn.004c53a0
call fcn.004c2db0
fld qword [esp + 0x2c]
fld qword [esp + 0x3c]
mov dword [esi + 0x4c], eax
call fcn.004c444a
fadd qword [0x512608]
fmul qword [0x5125f8]
call fcn.004c2db0
mov edx, 0x16e3600
sub edx, eax
mov eax, edx
cdq
mov ecx, 0x3a980
idiv ecx
mov edi, dword [esi + 0x94]
test edi, edi
mov ecx, edx
mov dword [esi + 0x54], ecx
je 0x46157d
cmp word [edi + 0xc2], 1
jne 0x4614c4
movsx ebx, word [edi + 0xb0]
mov eax, 0x1d4c0
cdq
idiv ebx
add eax, ecx
cdq
mov ecx, 0x3a980
idiv ecx
mov eax, 0x45e7b273
imul edx, ebx
imul edx
sar edx, 0x10
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jmp 0x4614db
mov edi, dword [esi + 0x94]
call fcn.004c11ab
movsx ecx, word [edi + 0xb0]
cdq
idiv ecx
mov ebx, edx
mov edx, dword [esi + 0x38]
movzx eax, word [edx + 0x39c]
test ax, ax
movsx edi, word [edi + 0xaa]
je 0x4614f4
movsx edi, ax
push 0x44
call fcn.004c1ea3
mov ecx, eax
add esp, 4
mov dword [esp + 0x2c], ecx
test ecx, ecx
mov byte [esp + 0x50], 1
je 0x461564
mov eax, dword [esi + 0x38]
mov edx, dword [eax + 0x398]
mov eax, dword [esi + 0x98]
push 0
push edx
push eax
mov eax, dword [esi + 0x48]
cdq
push edi
and edx, 3
add eax, edx
sar eax, 2
push edi
push ebx
push eax
mov eax, dword [esi + 0x44]
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
mov eax, dword [esi + 0x40]
cdq
and edx, 3
add eax, edx
mov edx, dword [esi + 0x20]
sar eax, 2
push eax
mov eax, dword [esi + 0x1c]
push edx
mov edx, dword [esi + 0x18]
push eax
mov eax, dword [esi + 0x94]
push edx
push eax
call fcn.004025cc
jmp 0x461566
xor eax, eax
mov ecx, dword [0x563908]
mov ecx, dword [ecx + 0x584]
push eax
mov byte [esp + 0x54], 0
call fcn.004a7300
mov ecx, dword [esi + 0x38]
mov eax, dword [ecx + 0x350]
mov edx, eax
imul edx, eax
mov dword [esi + 0x24], edx
mov eax, dword [ecx + 0x350]
imul eax, eax, 0x2710
mov dword [esi + 0x28], eax
cdq
xor eax, edx
sub eax, edx
mov dword [esi + 0x2c], eax
cmp dword [ecx + 0x350], 0
je 0x4615ba
mov ecx, dword [0x563908]
push esi
call fcn.004028e2
mov eax, esi
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x44