Function at 0x53a690
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
mov esi, ecx
mov dword [ebp - 8], esi
cmp byte [esi + 0x5d], 0
je 0x53a9fe
mov eax, dword [esi + 0x114]
test eax, eax
jle 0x53a6b9
cmp eax, 0xe
jl 0x53a7ef
cmp eax, 0xf
je 0x53a7ef
cmp eax, 0x17
je 0x53a7ef
cmp eax, 0x11
je 0x53a7ef
cmp eax, 0x12
je 0x53a7ef
cmp eax, 0x19
je 0x53a7ef
cmp eax, 0x18
je 0x53a7ef
cmp eax, 0x10
je 0x53a7ef
cmp eax, 0x16
je 0x53a7ef
cmp eax, 0x1a
je 0x53a7ef
cmp eax, 0x1b
je 0x53a7ef
cmp eax, 0x15
je 0x53a7ef
cmp eax, 0x20
je 0x53a7ef
cmp eax, 0x21
je 0x53a7ef
cmp eax, 0x22
je 0x53a7ef
cmp eax, 0x23
je 0x53a7ef
cmp eax, 0x24
je 0x53a7ef
cmp eax, 0x2c
je 0x53a7ef
cmp eax, 0x2d
je 0x53a7ef
cmp eax, 0x33
je 0x53a7ef
cmp eax, 0x1f
je 0x53a7ef
cmp eax, 0x1d
je 0x53a7ef
cmp eax, 0x31
je 0x53a7ef
cmp eax, 0x36
je 0x53a7ef
cmp eax, 0x37
je 0x53a7ef
cmp eax, 0x39
je 0x53a7ef
cmp eax, 0x3a
je 0x53a7ef
cmp eax, 0x3b
je 0x53a7ef
cmp eax, 0x1e
je 0x53a7ef
cmp eax, 0x3c
je 0x53a7ef
cmp eax, 0x38
je 0x53a7ef
cmp eax, 0x4b
je 0x53a7ef
cmp eax, 0x4c
je 0x53a7ef
cmp eax, 0x4d
je 0x53a7ef
cmp eax, 0x54
je 0x53a7ef
cmp eax, 0x4f
je 0x53a7ef
cmp eax, 0x50
je 0x53a7ef
cmp eax, 0x51
je 0x53a7ef
cmp eax, 0x57
je 0x53a7ef
cmp eax, 0x52
je 0x53a7ef
cmp eax, 0x2f
je 0x53a7ef
cmp eax, 0x55
je 0x53a7ef
cmp eax, 0x56
je 0x53a7ef
cmp eax, 0x58
je 0x53a7ef
cmp eax, 0x59
je 0x53a7ef
cmp eax, 0x5f
je 0x53a7ef
cmp eax, 0x5b
jne 0x53a80c
call fcn.00516800
mov ecx, eax
call fcn.00516780
mov ecx, eax
call fcn.005162e0
test al, al
je 0x53a815
mov eax, dword [esi + 0x114]
cmp eax, 0x25
jne 0x53a903
mov ecx, esi
call fcn.0053ac00
push dword [esi + 4]
mov dword [ebp - 4], eax
call fcn.005cff1c
push dword [esi + 0xc]
call fcn.005cff1c
push dword [esi + 0x10]
call fcn.005cff1c
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esi + 4], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
test eax, eax
je 0x53a866
push eax
call fcn.005cff1c
add esp, 4
mov dword [esi + 0x14], 0
mov eax, dword [esi + 0x18]
test eax, eax
je 0x53a87d
push eax
call fcn.005cff1c
add esp, 4
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x53a894
push eax
call fcn.005cff1c
add esp, 4
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x24]
test eax, eax
je 0x53a8ab
push eax
call fcn.005cff1c
add esp, 4
mov dword [esi + 0x24], 0
push ebx
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x53a8eb
push edi
xor edi, edi
cmp dword [ebp - 4], edi
jle 0x53a8d8
mov esi, dword [ebp - 4]
nop
mov eax, dword [ebx + edi*4]
test eax, eax
je 0x53a8d0
push eax
call fcn.005cff1c
add esp, 4
inc edi
cmp edi, esi
jl 0x53a8c0
mov esi, dword [ebp - 8]
push dword [esi + 8]
call fcn.005cff1c
add esp, 4
mov dword [esi + 8], 0
pop edi
mov eax, dword [esi + 0x28]
pop ebx
test eax, eax
je 0x53a903
push eax
call fcn.005cff1c
add esp, 4
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x20]
test eax, eax
je 0x53a93c
mov eax, dword [eax + 1]
test eax, eax
je 0x53a91a
push eax
call fcn.005cff1c
add esp, 4
mov eax, dword [esi + 0x20]
mov dword [eax + 1], 0
mov eax, dword [esi + 0x20]
mov byte [eax], 0
push dword [esi + 0x20]
call fcn.005cff1c
add esp, 4
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x114]
sub eax, 0x13
cmp eax, 1
ja 0x53a961
mov eax, dword [esi + 4]
test eax, eax
je 0x53a961
push eax
call fcn.005cff1c
add esp, 4
mov dword [esi + 4], 0
mov eax, dword [esi + 0x114]
cmp eax, 0x3e
je 0x53a9a7
cmp eax, 0x3f
je 0x53a9a7
cmp eax, 0x40
je 0x53a9a7
cmp eax, 0x41
je 0x53a9a7
cmp eax, 0x42
je 0x53a9a7
cmp eax, 0x43
je 0x53a9a7
cmp eax, 0x44
je 0x53a9a7
cmp eax, 0x45
je 0x53a9a7
cmp eax, 0x46
je 0x53a9a7
cmp eax, 0x47
je 0x53a9a7
cmp eax, 0x48
je 0x53a9a7
cmp eax, 0x49
jne 0x53aa3d
mov eax, dword [esi + 4]
test eax, eax
je 0x53a9be
push eax
call fcn.005cff1c
add esp, 4
mov dword [esi + 4], 0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x53a9d5
push eax
call fcn.005cff1c
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x53a9ec
push eax
call fcn.005cff1c
add esp, 4
mov dword [esi + 0x10], 0
mov eax, dword [esi + 8]
test eax, eax
je 0x53aa3d
push eax
call fcn.005cff1c
add esp, 4
jmp 0x53aa36
mov dword [esi + 4], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 8], 0
xor eax, eax
mov dword [esi + 0x138], 0
mov word [esi + 0x140], ax
xorps xmm0, xmm0
mov dword [esi + 0x50], eax
mov dword [esi + 0x120], eax
mov dword [esi + 0x11c], eax
mov word [esi + 0x17a], ax
mov dword [esi + 0x114], eax
mov byte [esi + 0x5d], al
mov dword [esi + 0x34], eax
mov dword [esi + 0x10c], eax
mov byte [esi + 0x110], al
mov dword [esi + 0x30], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x14e], eax
mov dword [esi + 0x154], eax
mov word [esi + 0x152], ax
mov dword [esi + 0x15a], eax
mov dword [esi + 0x15e], eax
mov word [esi + 0x162], ax
mov dword [esi + 0x124], eax
mov dword [esi + 0x108], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x308], eax
mov dword [esi + 0x30c], eax
mov dword [esi + 0x16c], eax
mov dword [esi + 0x170], eax
mov byte [esi + 0x178], al
mov dword [esi + 0x17c], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x13c], 0
mov dword [esi + 0x40], 0xffffffff
mov dword [esi + 0x14a], 0xffff
mov dword [esi + 0x168], 0xfffffff
movups xmmword [esi + 0x2ec], xmm0
push 0x98
movq qword [esi + 0x2fc], xmm0
mov dword [esi + 0x304], eax
mov eax, 0x7fff
mov word [esi + 0x148], ax
lea eax, [esi + 0x180]
push 0
push eax
mov dword [esi + 0x144], 0xfffffff
mov dword [esi + 0x134], 0
mov word [esi + 0x218], 0
mov byte [esi + 0xec], 0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xf4], 0
mov byte [esi + 0x21a], 0
call fcn.005c0be0
add esp, 0xc
mov byte [esi + 0x21b], 0
xor eax, eax
mov dword [esi + 0x2a8], 0
mov dword [esi + 0x2ac], 0
mov dword [esi + 0x2a0], eax
mov byte [esi + 0x29f], al
pop esi
mov esp, ebp
pop ebp
ret