Function at 0x4abd57
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
mov al, byte [esi + 0x84]
test al, al
push edi
jne 0x4ac1d3
xor edi, edi
cmp dword [esi + 0x78], edi
je 0x4ac1d3
fld dword [ebp + 8]
push ecx
fstp dword [esp]
call fcn.004a28ac
mov ecx, dword [esi + 0x70]
call fcn.004ad858
cmp eax, 0xffffffff
je 0x4ac1d3
cmp eax, 0x36
jg 0x4abf20
je 0x4ac198
cmp eax, 0x19
je 0x4abec3
cmp eax, 0x1c
je 0x4abea4
cmp eax, 0x1f
jle 0x4ac1d3
cmp eax, 0x21
jle 0x4abe7c
cmp eax, 0x24
je 0x4abe70
cmp eax, 0x30
je 0x4abe09
cmp eax, 0x33
jne 0x4ac1d3
mov eax, dword [esi + 0x94]
mov ecx, eax
imul ecx, ecx, 0x1c
push eax
push edi
fld dword [ecx + 0x6a5734]
sub esp, 0xc
mov eax, esp
fldz
fstp dword [eax]
fld dword [0x649bd8]
fst dword [eax + 4]
fld st(1)
jmp 0x4abe32
mov eax, dword [esi + 0x94]
mov ecx, eax
imul ecx, ecx, 0x1c
push eax
push edi
fld dword [ecx + 0x6a5734]
sub esp, 0xc
mov eax, esp
fldz
fstp dword [eax]
fld dword [0x649bd8]
fst dword [eax + 4]
fld st(1)
fchs
fstp dword [eax + 8]
sub esp, 0xc
mov eax, esp
fldz
fstp dword [eax]
mov ecx, esi
fstp dword [eax + 4]
fstp st(0)
fldz
fstp dword [eax + 8]
call fcn.004ab662
call fcn.00405e98
fld1
mov eax, dword [esi]
push ecx
mov ecx, esi
fstp dword [esp]
call dword [eax + 0xc]
sub esp, 0xc
mov ecx, esp
push str.use_club
jmp 0x4ac1bb
mov ecx, esi
call fcn.004a2f2a
jmp 0x4ac1d3
mov ecx, esi
call fcn.004a83ad
call fcn.00405e98
fld1
mov eax, dword [esi]
push ecx
mov ecx, esi
fstp dword [esp]
call dword [eax + 0xc]
sub esp, 0xc
mov ecx, esp
push str.bike_jack
jmp 0x4ac1bb
fld dword [0x6a5850]
push 0xb
push edi
fldz
sub esp, 0xc
mov eax, esp
fstp dword [eax]
fld dword [0x649bd8]
fst dword [eax + 4]
fld st(1)
jmp 0x4abee2
fld dword [0x6a5850]
push 0xb
push edi
fldz
sub esp, 0xc
mov eax, esp
fstp dword [eax]
fld dword [0x649bd8]
fst dword [eax + 4]
fld st(1)
fchs
fstp dword [eax + 8]
sub esp, 0xc
mov eax, esp
fldz
fstp dword [eax]
mov ecx, esi
fstp dword [eax + 4]
fstp st(0)
fldz
fstp dword [eax + 8]
call fcn.004ab662
call fcn.00405e98
fld1
mov eax, dword [esi]
push ecx
mov ecx, esi
fstp dword [esp]
call dword [eax + 0xc]
sub esp, 0xc
mov ecx, esp
push str.fight_punch
jmp 0x4ac1bb
cmp eax, 0x39
je 0x4ac198
cmp eax, 0x3b
jle 0x4ac1d3
cmp eax, 0x3e
jle 0x4ac086
cmp eax, 0x3f
je 0x4ac025
cmp eax, 0x42
je 0x4ac002
cmp eax, 0x45
je 0x4abfb0
cmp eax, 0x48
jne 0x4ac1d3
cmp dword [esi + 0x5c], edi
jle 0x4ac1d3
mov eax, dword [esi + 0x94]
imul eax, eax, 0x1c
push ecx
fld dword [eax + 0x6a5734]
xor eax, eax
inc eax
fstp dword [esp]
mov dword [esi + 0x2980], eax
push eax
mov ecx, esi
call fcn.004a80e3
cmp eax, edi
mov dword [esi + 0x297c], eax
je 0x4abfd7
dec dword [esi + 0x5c]
cmp dword [esi + 0x5c], edi
mov dword [esi + 0x2978], 0x42480000
jg 0x4abfe1
mov dword [esi + 0x29d8], 0x3e99999a
jmp 0x4abfe1
cmp dword [esi + 0x5c], edi
jle 0x4ac1d3
mov eax, dword [esi + 0x94]
imul eax, eax, 0x1c
push ecx
fld dword [eax + 0x6a5734]
or dword [esi + 0x2980], 0xffffffff
fstp dword [esp]
push 0xffffffffffffffff
jmp 0x4abf81
mov dword [esi + 0x2978], 0x3ecccccd
call fcn.00405e98
fld1
mov eax, dword [esi]
push ecx
mov ecx, esi
fstp dword [esp]
call dword [eax + 0xc]
sub esp, 0xc
mov ecx, esp
push str.tazer
jmp 0x4ac1bb
push dword [esi + 0x94]
fld dword [0x6a5850]
fldz
push edi
sub esp, 0xc
mov eax, esp
fstp dword [eax]
fld dword [0x649bd8]
fst dword [eax + 4]
fld st(1)
jmp 0x4ac048
push dword [esi + 0x94]
fld dword [0x6a5850]
fldz
push edi
sub esp, 0xc
mov eax, esp
fstp dword [eax]
fld dword [0x649bd8]
fst dword [eax + 4]
fld st(1)
fchs
fstp dword [eax + 8]
sub esp, 0xc
mov eax, esp
fldz
fstp dword [eax]
mov ecx, esi
fstp dword [eax + 4]
fstp st(0)
fldz
fstp dword [eax + 8]
call fcn.004ab662
call fcn.00405e98
fld1
mov eax, dword [esi]
push ecx
mov ecx, esi
fstp dword [esp]
call dword [eax + 0xc]
sub esp, 0xc
mov ecx, esp
push str.gun_strike
jmp 0x4ac1bb
cmp dword [esi + 0x5c], edi
jle 0x4ac1d3
mov eax, dword [esi + 0x94]
mov edi, dword [esi + 0x29a8]
mov dword [ebp - 4], eax
call fcn.00405e98
fld1
mov eax, dword [esi]
push ecx
mov ecx, esi
fstp dword [esp]
call dword [eax + 0xc]
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
push str.fire_gun
mov dword [ecx + 8], eax
call fcn.004865a8
add esp, 8
lea ebx, [esi + 0x8c]
push esp
mov ecx, ebx
call fcn.004afba9
push 2
mov ecx, esi
call fcn.004a44bf
sub esp, 0xc
push esp
mov ecx, ebx
call fcn.004afba9
push 3
mov ecx, esi
call fcn.004a44bf
test edi, edi
je 0x4ac14f
fld dword [esi + 0x58]
mov byte [ebp + 8], 0
fcomp dword [0x641de0]
fnstsw ax
test ah, 5
jp 0x4ac119
mov byte [ebp + 8], 1
mov ecx, dword [edi + 0x70]
call fcn.004ad81a
push dword [ebp + 8]
mov eax, dword [edi]
push 0
push dword [ebp - 4]
mov ecx, edi
push esi
call dword [eax + 0xc]
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov ecx, edi
call fcn.004ab2e9
jmp 0x4ac183
call fcn.00405e98
fld1
mov eax, dword [esi]
push ecx
mov ecx, esi
fstp dword [esp]
call dword [eax + 0xc]
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
push str.gun_misses_target
mov dword [ecx + 8], eax
call fcn.004865a8
add esp, 0x14
dec dword [esi + 0x5c]
cmp dword [esi + 0x5c], 0
jg 0x4ac1d3
mov dword [esi + 0x29d8], 0x3e99999a
jmp 0x4ac1d3
mov ecx, esi
call fcn.004a8a90
call fcn.00405e98
fld1
mov eax, dword [esi]
push ecx
mov ecx, esi
fstp dword [esp]
call dword [eax + 0xc]
sub esp, 0xc
mov ecx, esp
push str.finishing_move
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
call fcn.004865a8
add esp, 0x14
pop edi
pop esi
pop ebx
leave
ret 4