Function at 0x526720
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
mov edi, eax
mov ecx, edi
call fcn.0052bee0
mov ecx, dword [edi + 0x28]
mov edx, 0x39
cmp ecx, edx
jne 0x52677d
test al, al
jne 0x52677d
mov eax, dword [edi + 8]
cmp eax, 0x2bc
jle 0x526777
cmp eax, 0x2d0
jg 0x526777
jmp loc.007a50b3
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
cmp ecx, 0x3a
jne 0x526936
mov esi, dword [edi]
mov eax, dword [esi + 0x820]
mov ecx, dword [eax + 8]
mov eax, dword [edi + 0x118]
and eax, 0xffff
lea ebp, [eax + eax*4]
shl ebp, 5
add ebp, dword [ecx]
fld dword [ebp + 4]
fld qword [0x679628]
fmul st(1), st(0)
fxch st(1)
call fcn.006397d0
mov dword [esp + 0x10], eax
fidivr dword [esp + 0x10]
fstp dword [esp + 0x10]
fldz
fld dword [esp + 0x10]
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x5267d5
fstp st(0)
jmp 0x5267fc
fstp st(1)
fld1
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x5267ec
fstp st(0)
fld dword [0x679678]
jmp 0x5267fc
fld qword [0x679358]
fldz
fsub st(1), st(0)
fxch st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x10]
push ecx
fld dword [esp + 0x14]
mov ecx, ebp
fstp dword [edi + 0x84]
fld dword [0x67a100]
fstp dword [esp]
call fcn.00473b70
test al, al
je 0x526900
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x20]
mov ecx, dword [edi + 8]
add eax, 0x49
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
add edx, 1
push edx
sub esp, 8
sub ecx, 0x2f
fstp dword [esp + 4]
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
mov ebx, 0x20
mov eax, esi
fstp dword [esp]
call fcn.00453c30
fld dword [0x6795c8]
push 0x16
fstp dword [eax + 0x24]
fld dword [0x679664]
fstp dword [eax + 0x34]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x20]
mov ecx, dword [edi + 8]
add eax, 0x73
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
add edx, 1
push edx
mov edx, dword [edi]
mov eax, dword [edx + 0x820]
mov esi, dword [eax]
sub esp, 8
sub ecx, 0xa
fstp dword [esp + 4]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fstp dword [esp]
call fcn.00518a70
mov eax, dword [edi]
cmp byte [eax + 0x8c5], 0
jne 0x526900
fldz
mov ecx, dword [0x6a9f00]
mov esi, dword [eax + 0x784]
fst dword [esp + 0x10]
fcomp dword [ecx + 0xac8]
fnstsw ax
test ah, 0x44
jnp 0x5268ec
fld dword [ecx + 0xac8]
push ecx
fstp dword [esp]
call fcn.005af410
fstp dword [esp + 0x14]
add esp, 4
fld dword [esp + 0x10]
push ecx
mov eax, 0x35
fstp dword [esp]
mov ecx, esi
call fcn.00515020
cmp dword [ebp + 0x5c], 0
jle 0x526777
fld dword [0x679388]
push ecx
fstp dword [esp]
push 0
push 1
push str.anim_swim
mov dword [edi + 0x28], 0x3b
mov byte [edi + 0xbd], 1
call fcn.00528b00
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
cmp ecx, 0x3b
jne 0x5269f5
cmp byte [edi + 0xba], 0
jne 0x52695d
push 0x708
lea eax, [ecx - 0x32]
mov esi, edi
call fcn.005317c0
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
mov ecx, dword [edi + 8]
cmp ecx, 0x19
jg 0x526980
test al, al
jne 0x526980
fld dword [0x665418]
fstp dword [edi + 0x84]
fld dword [edi + 0x2c]
fsub qword [0x679360]
jmp 0x5269a1
cmp ecx, 0x280
jle 0x5269c6
test al, al
je 0x5269c6
fld dword [0x665418]
fstp dword [edi + 0x84]
fld dword [edi + 0x2c]
fadd qword [0x679360]
push 0
fstp dword [edi + 0x2c]
mov eax, edi
mov dword [edi + 0x28], edx
mov dword [edi + 0x64], 2
call fcn.0052f6d0
xor esi, esi
mov eax, edi
call fcn.0052f2e0
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
cmp byte [edi + 0x51], 0
je 0x526777
fld dword [0x679638]
push ecx
fstp dword [esp]
push 0
push 3
push str.anim_uptoeat
mov dword [edi + 0x28], 0x3c
call fcn.00528b00
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
cmp ecx, 0x3c
jne 0x526a49
mov eax, dword [edi + 0x118]
mov ecx, dword [edi]
mov edx, dword [ecx + 0x820]
mov ecx, dword [edx + 8]
and eax, 0xffff
lea eax, [eax + eax*4]
shl eax, 5
add eax, dword [ecx]
cmp byte [edi + 0x51], 0
je 0x526a58
cmp dword [eax + 0x5c], 0
jle 0x526777
fldz
push ecx
fstp dword [esp]
mov dword [edi + 0x28], 0x3d
push 0
push 0
push str.anim_eat
call fcn.00528b00
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
cmp ecx, 0x3d
jne 0x526a7d
cmp byte [edi + 0x51], 0
jne 0x526777
fld dword [0x67a274]
push ecx
fstp dword [esp]
push 0
push 3
push str.anim_uptoeat
mov dword [edi + 0x28], 0x3e
call fcn.00528b00
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
cmp ecx, 0x3e
jne 0x526777
mov edx, dword [edi]
mov eax, dword [edx + 0x820]
mov ecx, dword [eax + 8]
mov eax, dword [edi + 0x118]
and eax, 0xffff
lea edx, [eax + eax*4]
mov eax, dword [ecx]
shl edx, 5
cmp dword [eax + edx + 0x5c], 0
jle 0x526777
fldz
push ecx
fstp dword [esp]
mov dword [edi + 0x28], 0x3b
push 0
push 1
push str.anim_swim
call fcn.00528b00
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 4
jmp fcn.00524a70