Function at 0x478f30
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x47917a
cmp eax, 0x7c
je 0x47917a
cmp eax, 0x29
jne 0x478f68
cmp dword [esi + 0x10], 0
jne 0x47917a
test dword [esi + 0x50], 0x10000000
je 0x479180
cmp eax, 0x2e
jne 0x478fbf
push 5
lea ecx, [esi + 0x24]
call fcn.00479330
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x478fb3
cmp byte [eax], 0x5c
jne 0x478fb1
inc eax
cmp eax, ecx
je 0x478fb1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x478f9e
mov dl, byte [eax]
cmp dl, 0x28
je 0x478faf
cmp dl, 0x29
je 0x478faf
test cl, 0x10
jne 0x478fb1
mov cl, byte [eax]
cmp cl, 0x7b
je 0x478faf
cmp cl, 0x7d
jne 0x478fb1
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00478020
jmp 0x479165
cmp eax, 0x5c
jne 0x479024
mov ecx, esi
call fcn.00478ee0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x478ff1
cmp byte [esi + 0x48], 0x62
jne 0x478ff1
push 4
lea ecx, [esi + 0x24]
call fcn.00479330
mov ecx, esi
call fcn.00478ee0
jmp 0x47916c
test eax, eax
je 0x479018
cmp byte [esi + 0x48], 0x42
jne 0x479018
push 4
lea ecx, [esi + 0x24]
call fcn.00479330
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00478ee0
jmp 0x47916c
mov ecx, esi
call fcn.0047a180
jmp 0x479165
cmp eax, 0x5b
jne 0x479089
mov ecx, esi
call fcn.00478ee0
mov ecx, esi
call fcn.0047a0a0
cmp dword [esi + 0x4c], 0x5d
jne 0x479187
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x47907d
cmp byte [eax], 0x5c
jne 0x47907b
inc eax
cmp eax, ecx
je 0x47907b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x479068
mov dl, byte [eax]
cmp dl, 0x28
je 0x479079
cmp dl, 0x29
je 0x479079
test cl, 0x10
jne 0x47907b
mov cl, byte [eax]
cmp cl, 0x7b
je 0x479079
cmp cl, 0x7d
jne 0x47907b
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00478020
jmp 0x479165
cmp eax, 0x28
jne 0x4790f1
mov ecx, esi
call fcn.00478ee0
mov ecx, esi
call fcn.0047a310
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x479180
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4790e4
cmp byte [eax], 0x5c
jne 0x4790e2
inc eax
cmp eax, ecx
je 0x4790e2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4790cf
mov dl, byte [eax]
cmp dl, 0x28
je 0x4790e0
cmp dl, 0x29
je 0x4790e0
test cl, 0x10
jne 0x4790e2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4790e0
cmp cl, 0x7d
jne 0x4790e2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00478020
test bl, bl
je 0x47916c
jmp 0x479165
cmp eax, 0x5e
jne 0x479109
push 2
lea ecx, [esi + 0x24]
call fcn.00479330
mov ecx, esi
call fcn.00478ee0
jmp 0x47916c
cmp eax, 0x24
jne 0x479121
push 3
lea ecx, [esi + 0x24]
call fcn.00479330
mov ecx, esi
call fcn.00478ee0
jmp 0x47916c
cmp eax, 0x2a
je 0x479195
cmp eax, 0x2b
je 0x479195
cmp eax, 0x3f
je 0x479195
cmp eax, 0x7b
je 0x479195
cmp eax, 0x7d
jne 0x479143
test dword [esi + 0x50], 0x10000000
je 0x47918e
cmp eax, 0x5d
jne 0x479151
test dword [esi + 0x50], 0x10000000
je 0x479187
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0047a500
mov ecx, esi
call fcn.00478ee0
mov ecx, esi
call fcn.0047a3d0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x478f43
pop esi
mov al, cl
pop ebx
pop ecx
ret
push 5
call fcn.00587cfd
push 4
call fcn.00587cfd
push 6
call fcn.00587cfd
push 0xa
call fcn.00587cfd
int3