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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xe4
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 4]
push edi
or edi, 0xffffffff
test eax, 0x60000000
mov dword [esp + 0x1c], edi
jne 0x407e32
call fcn.00402e20
test al, al
jne 0x407d04
mov al, byte [esi + 0x211]
test al, al
jne 0x407cf7
mov al, byte [esi + 0x212]
test al, al
je 0x407e32
mov eax, dword [ebp + 0xc]
cmp word [eax + 0xc], di
je 0x407e32
cmp dword [esi + 0xf08], 0xa
je 0x407e32
mov eax, dword [0x76ba40]
test eax, eax
je 0x407d28
mov eax, dword [esi + 0x59c]
test eax, eax
jne 0x407e32
mov edx, dword [ebp + 0xc]
xor ecx, ecx
xor ebx, ebx
cmp word [edx + 0xc], di
mov dword [esp + 0x28], ecx
mov word [esp + 0x20], 0xd2
mov word [esp + 0x22], 0xb5
mov dword [esp + 0x24], 0x3e200000
mov dword [esp + 0x2c], ecx
jne 0x407e3d
xor edx, edx
mov dword [esp + 0x1c], edx
mov eax, 0x6b3488
test ebx, ebx
jne 0x407da0
movzx ecx, word [eax]
cmp ecx, dword [ebp + 0x10]
jne 0x407d7c
cmp word [eax + 2], 0x8b
je 0x407d7c
test eax, eax
mov ebx, eax
jne 0x407d9f
movzx edi, word [eax + 0x10]
cmp edi, dword [ebp + 0x10]
lea ecx, [eax + 0x10]
jne 0x407d92
cmp word [eax + 0x12], 0x8b
je 0x407d92
mov ebx, ecx
add edx, 2
add eax, 0x20
cmp edx, 0xe
jb 0x407d62
jmp 0x407da0
inc edx
mov al, byte [esi + 0x211]
test al, al
mov dword [esp + 0x1c], edx
jne 0x407db8
mov al, byte [esi + 0x212]
test al, al
je 0x407dbf
mov ebx, 0x6b34b8
jmp 0x407dc3
test ebx, ebx
je 0x407e32
mov di, word [ebx + 2]
cmp di, 0x128
mov eax, 0x154
je 0x407ded
mov cl, byte [esi + 0x212]
test cl, cl
jne 0x407de6
cmp word [esi + 0x80], ax
jne 0x407e00
cmp di, 0x128
jne 0x407e32
mov cl, byte [esi + 0x212]
test cl, cl
jne 0x407e00
cmp word [esi + 0x80], ax
jne 0x407e32
cmp di, 0x12a
je 0x407e27
cmp di, 0x12b
je 0x407e19
mov ecx, esi
call fcn.00402d40
test al, al
je 0x407e41
cmp di, 0x12a
je 0x407e27
cmp di, 0x12b
jne 0x407e32
mov ecx, esi
call fcn.00402d40
test al, al
jne 0x407e41
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
lea ebx, [esp + 0x20]
mov eax, dword [ebx]
lea edi, [esi + 0xa0c]
mov edx, edi
mov dword [edx], eax
mov ecx, dword [ebx + 4]
mov dword [edx + 4], ecx
mov eax, dword [ebx + 8]
mov dword [edx + 8], eax
mov ecx, dword [ebx + 0xc]
mov dword [edx + 0xc], ecx
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x50]
push edx
call fcn.005efd30
mov ebx, dword [ebp + 0xc]
movaps xmm0, xmmword [eax]
push 0x1f
mov ecx, ebx
movaps xmmword [esp + 0x34], xmm0
call fcn.005ef7a0
movaps xmm0, xmmword [eax + 0x40]
movaps xmm1, xmmword [ebx + 0x30]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
mulps xmm1, xmm2
movaps xmm2, xmmword [ebx + 0x40]
addps xmm1, xmm2
movaps xmm2, xmmword [ebx + 0x20]
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
mulps xmm2, xmm3
addps xmm2, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movaps xmm0, xmmword [ebx + 0x10]
lea eax, [esp + 0x50]
mulps xmm0, xmm1
addps xmm0, xmm2
push eax
mov ecx, esi
movaps xmmword [esp + 0x24], xmm0
call fcn.005efd30
movaps xmm1, xmmword [eax]
movaps xmm3, xmmword [esp + 0x30]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0x55
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
subss xmm0, xmm2
xorps xmm2, xmm2
movaps xmmword [esp + 0x50], xmm2
subss xmm2, xmm0
maxss xmm0, xmm2
movaps xmmword [esp + 0x40], xmm0
fld dword [esp + 0x40]
fcomp dword [0x68b580]
fnstsw ax
test ah, 0x41
je 0x407e32
movaps xmm2, xmmword [esp + 0x20]
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x18]
movss xmm0, dword [ecx]
unpcklps xmm0, xmm3
shufps xmm0, xmm3, 0xe1
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x18], 0
lea edx, [esp + 0x18]
movss xmm0, dword [edx]
unpcklps xmm0, xmm2
shufps xmm0, xmm2, 0xe1
lea eax, [esp + 0x18]
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x18], 0
movss xmm2, dword [eax]
mov al, byte [edi + 0xc]
test al, al
unpcklps xmm2, xmm1
shufps xmm2, xmm1, 0xe1
subps xmm0, xmm2
mulps xmm0, xmm0
movaps xmmword [esp + 0x70], xmm2
movaps xmm1, xmm0
movaps xmm2, xmm0
shufps xmm1, xmm0, 0xaa
shufps xmm2, xmm0, 0x55
addss xmm0, xmm2
addss xmm0, xmm1
movaps xmmword [esp + 0x40], xmm0
jne 0x408005
mov ecx, esi
call fcn.00402a50
test al, al
jne 0x408005
fld dword [edi + 4]
fld st(0)
fmul st(1)
fld dword [esp + 0x40]
fcompp
fnstsw ax
fstp st(0)
test ah, 5
jnp 0x408005
movaps xmm4, xmmword [esp + 0x30]
movaps xmm0, xmmword [esp + 0x20]
subps xmm0, xmm4
mulps xmm0, xmm0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
movaps xmm2, xmm0
shufps xmm2, xmm0, 0x55
addss xmm0, xmm2
addss xmm0, xmm1
movaps xmm3, xmm0
movaps xmm0, xmmword [esp + 0x70]
subps xmm0, xmm4
mulps xmm0, xmm0
movaps xmm1, xmm0
movaps xmm2, xmm0
shufps xmm1, xmm0, 0xaa
shufps xmm2, xmm0, 0x55
addss xmm0, xmm2
addss xmm0, xmm1
comiss xmm0, xmm3
jae 0x407e32
mov eax, dword [esi + 0x1d8]
test eax, eax
je 0x40807e
mov ecx, dword [esi + 0x20c]
cmp ecx, dword [0x6f2258]
jne 0x40807e
mov cl, byte [esi + 0x208]
test cl, cl
je 0x40807e
push eax
push ecx
mov eax, esp
push ecx
mov byte [esi + 0x208], 0
mov dword [eax], 0
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
push esi
push 0x59e5
lea ecx, [esp + 0x94]
mov dword [eax], 0
call fcn.00401d20
mov ecx, eax
call fcn.00401d60
mov ax, word [edi + 2]
cmp ax, 0x12a
je 0x40808e
cmp ax, 0x12b
jne 0x408098
mov dword [esi + 0x2b8], 0xffffffff
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x4080a2
mov eax, dword [edi + 8]
push ebx
mov ecx, esi
mov dword [edi + 8], eax
call fcn.00402e80
movaps xmm0, xmmword [esi + 0x40]
lea ecx, [esp + 0x70]
push ecx
mov dword [esi + 0x1f0], edi
push 0x1f
mov ecx, ebx
movaps xmmword [esi + 0x910], xmm0
call fcn.005ef7a0
mov ecx, eax
call fcn.005efd90
movaps xmm0, xmmword [eax]
movaps xmmword [esi + 0x8d0], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0x8e0], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [esi + 0x8f0], xmm0
movaps xmm0, xmmword [eax + 0x30]
movaps xmmword [esi + 0x900], xmm0
movaps xmm1, xmmword [esi + 0x900]
movaps xmm0, xmmword [esi + 0x910]
shufps xmm0, xmm0, 0x55
unpcklps xmm0, xmm1
shufps xmm0, xmm1, 0xe1
movaps xmmword [esi + 0x900], xmm0
movaps xmm1, xmmword [esi + 0x8f0]
lea edx, [esp + 0x18]
lea eax, [esp + 0x70]
mov dword [esp + 0x18], 0
movss xmm0, dword [edx]
unpcklps xmm0, xmm1
movaps xmm1, xmmword [esi + 0x8f0]
push eax
lea ecx, [esp + 0xb4]
shufps xmm0, xmm1, 0xe1
push ecx
movaps xmmword [esi + 0x8f0], xmm0
movaps xmmword [esp + 0x78], xmm0
call fcn.005ff310
movaps xmm0, xmmword [eax]
movaps xmmword [esi + 0x8d0], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0x8e0], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [esi + 0x8f0], xmm0
movaps xmm0, xmmword [esi + 0x8f0]
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x3c]
movaps xmmword [esp + 0x7c], xmm0
movaps xmm0, xmmword [esi + 0x30]
push eax
movaps xmmword [esp + 0x50], xmm0
call fcn.006025e0
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x34]
push edx
mov ebx, eax
call fcn.006025e0
movaps xmm0, xmmword [eax]
movaps xmm1, xmmword [ebx]
subss xmm0, xmm1
movaps xmm1, xmmword [esp + 0x68]
subss xmm1, xmm0
maxss xmm0, xmm1
movaps xmmword [esp + 0x48], xmm0
mov eax, dword [esp + 0x48]
mov dword [esi + 0x8c8], eax
mov eax, dword [edi + 8]
add esp, 0x18
cmp eax, 1
mov dword [esp + 0x18], eax
jg 0x4081f3
mov dword [esp + 0x18], 1
fild dword [esp + 0x18]
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x8c0], ecx
mov ecx, dword [ebp + 0x18]
test ecx, ecx
fdivr dword [esp + 0x30]
mov byte [esi + 0x8c4], 0
fstp dword [esi + 0x8c8]
je 0x40822a
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x40822a
mov dword [esi + 0x920], ecx
jmp 0x408233
or eax, 0xffffffff
mov dword [esi + 0x920], eax
mov edx, dword [esi + 4]
and edx, 0xfffdffff
mov dword [esi + 0x924], eax
mov dword [esi + 4], edx
mov ax, word [edi + 2]
cmp ax, 0x12a
je 0x4082eb
cmp ax, 0x12b
je 0x4082eb
mov edx, dword [esi + 0x924]
mov ecx, dword [esi + 0x920]
push 1
push 1
push edx
mov edx, dword [edi + 8]
push ecx
push edx
push eax
mov ecx, esi
call fcn.0041b7c0
mov edx, dword [esi + 4]
mov eax, dword [esi + 0x1d8]
or edx, 0x100
test eax, eax
mov dword [esi + 4], edx
je 0x4082de
push eax
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
push esi
push 0x59f5
lea ecx, [esp + 0x74]
mov dword [eax], 0
call fcn.00401d20
mov ecx, eax
call fcn.00401d60
lea ecx, [esi + 0x620]
call fcn.00402490
jmp 0x408309
mov ecx, dword [esi + 0x924]
mov edx, dword [esi + 0x920]
push 1
push 0
push ecx
mov ecx, dword [edi + 8]
push edx
push ecx
push eax
mov ecx, esi
call fcn.0041b7c0
mov al, byte [esi + 9]
cmp al, 0x29
je 0x408327
cmp al, 0x2a
je 0x408327
cmp al, 0x2b
je 0x408327
cmp al, 0x2c
je 0x408327
mov ecx, esi
call fcn.00402d70
test al, al
je 0x408369
mov eax, dword [esi + 0x1314]
test eax, eax
je 0x408345
cmp byte [esi + 0x12c3], 3
jne 0x408345
push 1
push eax
call fcn.0047fb10
add esp, 8
movzx edx, byte [esi + 0xa08]
mov ecx, dword [esi + 4]
push esi
push edx
or ecx, 0x30000000
push 2
mov dword [esi + 4], ecx
mov ecx, dword [0x6f2234]
push 9
call sym.TrueCrimeMB.exe_public:_void___thiscall_GameController::AwardPoints_int__int__int__class_Object__
mov ax, word [esi + 0x80]
cmp ax, 0x12a
je 0x40837c
cmp ax, 0x12b
jne 0x40838d
mov eax, dword [esi + 0x62c]
test eax, eax
je 0x40838d
mov ecx, esi
call fcn.004079c0
mov eax, dword [0x76ba40]
test eax, eax
je 0x4083d1
mov ecx, dword [ebp + 0xc]
mov eax, dword [0x6f2258]
push ecx
mov dword [esi + 0x59c], eax
call fcn.00402500
add esp, 4
test al, al
je 0x4083d1
mov edx, dword [esi + 0x924]
mov eax, dword [esi + 0x920]
mov ecx, dword [edi + 8]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
push 6
mov ecx, esi
call fcn.00419610
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x18