Function at 0x4655e0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
lea esi, [ebx + 0xcc]
mov edi, 5
lea ebx, [ebx]
cmp dword [esi + 0xc], 0
je 0x46566f
fild dword [ebx + 8]
fadd dword [esi + 4]
fsub dword [esi - 4]
fstp dword [esp + 0x20]
fild dword [ebx + 0xc]
fadd dword [esi + 8]
fsub dword [esi]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fld dword [esp + 0x20]
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
call fcn.00644620
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fcomp dword [0x6887c8]
fnstsw ax
test ah, 5
jnp 0x46566f
fld dword [esp + 0x20]
fld qword [0x688980]
fmul st(1), st(0)
fld dword [esi - 4]
faddp st(2)
fxch st(1)
fstp dword [esi - 4]
fmul dword [esp + 0x24]
fadd dword [esi]
fstp dword [esi]
add esi, 0x14
sub edi, 1
jne 0x465600
mov eax, dword [ebx + 0x3c]
cmp eax, 0x1b
jne 0x46576a
cmp dword [ebx + 0x54], edi
jne 0x465bd3
fld dword [0x68893c]
push ecx
fstp dword [esp]
mov dword [ebx + 0x3c], 1
call fcn.005b57c0
fadd qword [0x688618]
lea ecx, [edi + 0x1e]
mov eax, ebx
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push edi
push str.anim_idle
call fcn.004635e0
mov ecx, dword [ebx]
cmp dword [ecx + 0x768], edi
je 0x465757
mov eax, dword [ecx + 0x7f8]
cmp eax, 0x3d
je 0x465709
cmp eax, 0x3e
je 0x465709
cmp eax, 0x3f
je 0x465709
cmp eax, 0x40
je 0x465709
cmp eax, 0x41
je 0x465709
cmp eax, 0x42
je 0x465709
cmp eax, 0x43
je 0x465709
cmp eax, 0x44
je 0x465709
cmp eax, 0x45
je 0x465709
cmp eax, 0x46
jne 0x465757
mov esi, dword [ebx + 0x94]
test esi, esi
mov eax, dword [ecx + 0x820]
mov ecx, dword [eax + 8]
jne 0x465732
fldz
xor eax, eax
fstp dword [eax + 8]
mov dword [ebx + 0xd8], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movzx eax, si
cmp eax, dword [ecx + 8]
jae 0x46571c
fldz
lea eax, [eax + eax*4]
shl eax, 5
add eax, dword [ecx]
xor ecx, ecx
cmp dword [eax + 0x9c], esi
setne cl
sub ecx, 1
and eax, ecx
fstp dword [eax + 8]
mov dword [ebx + 0xd8], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x1a
jne 0x465843
mov edx, dword [ebx]
mov esi, dword [ebx + 0x94]
test esi, esi
mov eax, dword [edx + 0x820]
mov ecx, dword [eax + 8]
jne 0x46578c
xor eax, eax
jmp 0x4657b0
movzx eax, si
cmp eax, dword [ecx + 8]
jb 0x465798
xor eax, eax
jmp 0x4657b0
lea eax, [eax + eax*4]
shl eax, 5
add eax, dword [ecx]
xor ecx, ecx
cmp dword [eax + 0x9c], esi
setne cl
sub ecx, 1
and eax, ecx
cmp dword [eax + 0x5c], 0
jle 0x465bd3
fld dword [0x6886a0]
push ecx
fstp dword [esp]
push 0
push str.anim_nonactive_idle2
mov ecx, 0x14
mov eax, ebx
call fcn.004635e0
mov ecx, dword [ebx]
mov eax, ecx
call fcn.00456770
test al, al
je 0x465833
mov esi, dword [ebx + 0x94]
test esi, esi
mov edx, dword [ecx + 0x820]
mov ecx, dword [edx + 8]
jne 0x46580e
fldz
xor eax, eax
fstp dword [eax + 8]
mov dword [ebx + 0x3c], 0x1b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movzx eax, si
cmp eax, dword [ecx + 8]
jae 0x4657f7
fldz
lea eax, [eax + eax*4]
shl eax, 5
add eax, dword [ecx]
xor ecx, ecx
cmp dword [eax + 0x9c], esi
setne cl
sub ecx, 1
and eax, ecx
fstp dword [eax + 8]
mov dword [ebx + 0x3c], 0x1b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
fldz
mov edx, dword [ebx + 4]
xor eax, eax
fstp dword [esp + 0x18]
lea esi, [esp + 0x10]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
call fcn.0041e280
test al, al
je 0x465a0e
jmp 0x465870
mov ebx, dword [esp + 0x10]
lea edi, [esp + 0x28]
call fcn.00536520
mov esi, dword [ebx + 0x1c]
mov edi, dword [ebp + 8]
sub esi, dword [edi + 0x1c]
cmp byte [ebx + 0xb8], 0
jne 0x4659df
cmp byte [ebx + 0xba], 0
je 0x4659df
cmp dword [ebx + 0x64], 0
jne 0x4659df
mov eax, dword [ebx + 0x28]
cmp eax, 0xe
je 0x4659df
cmp byte [ebx + 0xec], 0
jne 0x4659df
cmp eax, 1
je 0x4659df
cmp eax, 2
je 0x4659df
cmp eax, 3
je 0x4659df
cmp dword [esp + 0x28], 0x320
jg 0x4659df
lea edx, [esi + 2]
cmp edx, 4
ja 0x4659df
cmp eax, 0x20
je 0x465937
cmp eax, 0x24
je 0x465937
cmp eax, 0x25
je 0x465937
cmp dword [ebx + 0x24], 0x12
je 0x465937
mov ecx, dword [ebx + 0xc4]
cmp ecx, 2
je 0x465944
cmp ecx, 3
je 0x465944
mov ecx, dword [ebx + 0xd8]
cmp ecx, 1
je 0x465944
cmp ecx, 3
je 0x465944
cmp eax, 0xf
je 0x465944
jmp 0x4659df
cmp byte [ebx + 0xbc], 0
je 0x4659df
cmp byte [ebx + 0x51], 0
mov eax, 0x10e
je 0x465954
mov eax, 0x140
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 8]
mov dword [esp + 0x1c], edx
push eax
add edx, 0x14
lea eax, [esp + 0x2c]
mov dword [esp + 0x24], ecx
call fcn.0041e1e0
add esp, 4
test al, al
je 0x4659df
fild dword [esp + 0x2c]
sub esp, 0x10
fstp dword [esp + 0xc]
fild dword [esp + 0x38]
fstp dword [esp + 8]
fild dword [esp + 0x2c]
fstp dword [esp + 4]
fild dword [esp + 0x30]
fstp dword [esp]
call fcn.004090f0
mov eax, esi
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x30], eax
add esp, 0x10
cmp dword [esp + 0x14], 0
fild dword [esp + 0x20]
fmul qword [0x688aa0]
faddp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
je 0x4659d3
fld dword [esp + 0x18]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x4659dd
fstp dword [esp + 0x18]
mov dword [esp + 0x14], ebx
jmp 0x4659df
fstp st(0)
mov edx, dword [edi + 4]
lea esi, [esp + 0x10]
call fcn.0041e280
test al, al
jne 0x465870
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x465a0c
mov eax, edi
push eax
call fcn.00464e60
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ebx, edi
fldz
mov edx, dword [ebx + 4]
xor eax, eax
fstp dword [esp + 0x1c]
lea esi, [esp + 0x14]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
call fcn.0041e460
test al, al
je 0x465bd3
fld qword [0x688980]
mov edi, dword [esp + 0x14]
cmp dword [edi + 8], 3
jne 0x465aa7
mov eax, dword [edi + 0x14]
sub eax, dword [ebx + 0x1c]
mov esi, dword [edi + 0x10]
sub esi, dword [ebx + 0x28]
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
mov dword [esp + 0x20], ecx
jle 0x465a6a
mov dword [esp + 0x18], eax
jmp 0x465a70
mov eax, ecx
mov dword [esp + 0x18], ecx
cmp eax, 2
jg 0x465aa7
cmp dword [esp + 0x10], 0
fild dword [esp + 0x20]
fmul st(1)
fiadd dword [esp + 0x18]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
je 0x465a9b
fld dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x465aa5
fstp dword [esp + 0x1c]
mov dword [esp + 0x10], edi
jmp 0x465aa7
fstp st(0)
mov edx, dword [ebx + 4]
lea esi, [esp + 0x14]
call fcn.0041e460
test al, al
jne 0x465a38
mov esi, dword [esp + 0x10]
fstp st(0)
test esi, esi
je 0x465bd3
fld dword [0x688648]
push ecx
fstp dword [esp]
push 3
push str.anim_shooting
mov ecx, 0x14
mov eax, ebx
mov dword [ebx + 0x3c], 0x1a
mov dword [ebx + 0x54], 0x5dc
call fcn.004635e0
mov eax, dword [ebx]
cmp byte [eax + 0x8c5], 0
jne 0x465b44
fldz
mov ecx, dword [0x6ba020]
mov edi, dword [eax + 0x784]
fst dword [esp + 0x1c]
fcomp dword [ecx + 0x88c]
fnstsw ax
test ah, 0x44
jnp 0x465b30
fld dword [ecx + 0x88c]
push ecx
fstp dword [esp]
call fcn.005b57c0
fstp dword [esp + 0x20]
add esp, 4
fld dword [esp + 0x1c]
push ecx
mov eax, 0x2a
fstp dword [esp]
mov ecx, edi
call fcn.005192b0
call fcn.0044fdf0
mov edx, ebx
call fcn.00464e20
mov ecx, dword [ebx + 4]
mov edi, eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
call fcn.0041e010
mov ecx, dword [esp + 0x10]
add eax, 0x28
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fstp dword [edi]
mov eax, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x10]
mov ebx, dword [ebx + 4]
call fcn.0041e0d0
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
push ecx
fstp dword [edi + 4]
fld dword [0x6887c8]
fstp dword [esp]
call fcn.005b57c0
fld qword [0x688618]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x24]
fadd dword [esp + 0x24]
fstp dword [edi + 8]
fld dword [0x6887c8]
fstp dword [esp]
call fcn.005b57c0
fsub qword [0x688618]
add esp, 4
mov dword [edi + 0x10], 0x11
fstp dword [edi + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4