Function at 0x461d90
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 0x461e1f
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.0063a080
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fcomp dword [0x679508]
fnstsw ax
test ah, 5
jnp 0x461e1f
fld dword [esp + 0x20]
fld qword [0x6796d8]
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 0x461db0
mov eax, dword [ebx + 0x3c]
cmp eax, 0x1b
jne 0x461f1a
cmp dword [ebx + 0x54], edi
jne 0x462383
fld dword [0x679674]
push ecx
fstp dword [esp]
mov dword [ebx + 0x3c], 1
call fcn.005af410
fadd qword [0x679358]
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.0045fd90
mov ecx, dword [ebx]
cmp dword [ecx + 0x768], edi
je 0x461f07
mov eax, dword [ecx + 0x7f8]
cmp eax, 0x3d
je 0x461eb9
cmp eax, 0x3e
je 0x461eb9
cmp eax, 0x3f
je 0x461eb9
cmp eax, 0x40
je 0x461eb9
cmp eax, 0x41
je 0x461eb9
cmp eax, 0x42
je 0x461eb9
cmp eax, 0x43
je 0x461eb9
cmp eax, 0x44
je 0x461eb9
cmp eax, 0x45
je 0x461eb9
cmp eax, 0x46
jne 0x461f07
mov esi, dword [ebx + 0x94]
test esi, esi
mov eax, dword [ecx + 0x820]
mov ecx, dword [eax + 8]
jne 0x461ee2
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 0x461ecc
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 0x461ff3
mov edx, dword [ebx]
mov esi, dword [ebx + 0x94]
test esi, esi
mov eax, dword [edx + 0x820]
mov ecx, dword [eax + 8]
jne 0x461f3c
xor eax, eax
jmp 0x461f60
movzx eax, si
cmp eax, dword [ecx + 8]
jb 0x461f48
xor eax, eax
jmp 0x461f60
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 0x462383
fld dword [0x6793e0]
push ecx
fstp dword [esp]
push 0
push str.anim_nonactive_idle2
mov ecx, 0x14
mov eax, ebx
call fcn.0045fd90
mov ecx, dword [ebx]
mov eax, ecx
call fcn.004537d0
test al, al
je 0x461fe3
mov esi, dword [ebx + 0x94]
test esi, esi
mov edx, dword [ecx + 0x820]
mov ecx, dword [edx + 8]
jne 0x461fbe
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 0x461fa7
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.0041c8f0
test al, al
je 0x4621be
jmp 0x462020
mov ebx, dword [esp + 0x10]
lea edi, [esp + 0x28]
call fcn.005320b0
mov esi, dword [ebx + 0x1c]
mov edi, dword [ebp + 8]
sub esi, dword [edi + 0x1c]
cmp byte [ebx + 0xb8], 0
jne 0x46218f
cmp byte [ebx + 0xba], 0
je 0x46218f
cmp dword [ebx + 0x64], 0
jne 0x46218f
mov eax, dword [ebx + 0x28]
cmp eax, 0xe
je 0x46218f
cmp byte [ebx + 0xec], 0
jne 0x46218f
cmp eax, 1
je 0x46218f
cmp eax, 2
je 0x46218f
cmp eax, 3
je 0x46218f
cmp dword [esp + 0x28], 0x320
jg 0x46218f
lea edx, [esi + 2]
cmp edx, 4
ja 0x46218f
cmp eax, 0x20
je 0x4620e7
cmp eax, 0x24
je 0x4620e7
cmp eax, 0x25
je 0x4620e7
cmp dword [ebx + 0x24], 0x12
je 0x4620e7
mov ecx, dword [ebx + 0xc4]
cmp ecx, 2
je 0x4620f4
cmp ecx, 0xffffffff
je 0x4620f4
mov ecx, dword [ebx + 0xd8]
cmp ecx, 1
je 0x4620f4
cmp ecx, 3
je 0x4620f4
cmp eax, 0xffffffff
je 0x4620f4
jmp 0x46218f
cmp byte [ebx + 0xbc], 0
je 0x46218f
cmp byte [ebx + 0x51], 0
mov eax, 0x10e
je 0x462104
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.0041c850
add esp, 4
test al, al
je 0x46218f
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.00407b10
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 [0x679820]
faddp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
je 0x462183
fld dword [esp + 0x18]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x46218d
fstp dword [esp + 0x18]
mov dword [esp + 0x14], ebx
jmp 0x46218f
fstp st(0)
mov edx, dword [edi + 4]
lea esi, [esp + 0x10]
call fcn.0041c8f0
test al, al
jne 0x462020
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x4621bc
mov eax, edi
push eax
call fcn.00461610
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.0041cad0
test al, al
je 0x462383
fld qword [0x6796d8]
mov edi, dword [esp + 0x14]
cmp dword [edi + 8], 3
jne 0x462257
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 0x46221a
mov dword [esp + 0x18], eax
jmp 0x462220
mov eax, ecx
mov dword [esp + 0x18], ecx
cmp eax, 2
jg 0x462257
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 0x46224b
fld dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x462255
fstp dword [esp + 0x1c]
mov dword [esp + 0x10], edi
jmp 0x462257
fstp st(0)
mov edx, dword [ebx + 4]
lea esi, [esp + 0x14]
call fcn.0041cad0
test al, al
jne 0x4621e8
mov esi, dword [esp + 0x10]
fstp st(0)
test esi, esi
je 0x462383
fld dword [0x679388]
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.0045fd90
mov eax, dword [ebx]
cmp byte [eax + 0x8c5], 0
jne 0x4622f4
fldz
mov ecx, dword [0x6a9f00]
mov edi, dword [eax + 0x784]
fst dword [esp + 0x1c]
fcomp dword [ecx + 0x88c]
fnstsw ax
test ah, 0x44
jnp 0x4622e0
fld dword [ecx + 0x88c]
push ecx
fstp dword [esp]
call fcn.005af410
fstp dword [esp + 0x20]
add esp, 4
fld dword [esp + 0x1c]
push ecx
mov eax, 0x2a
fstp dword [esp]
mov ecx, edi
call fcn.00515020
call fcn.0044d000
mov edx, ebx
call fcn.004615d0
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.0041c680
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.0041c740
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
push ecx
fstp dword [edi + 4]
fld dword [0x679508]
fstp dword [esp]
call fcn.005af410
fld qword [0x679358]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x24]
fadd dword [esp + 0x24]
fstp dword [edi + 8]
fld dword [0x679508]
fstp dword [esp]
call fcn.005af410
fsub qword [0x679358]
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