Function at 0x47a500
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x47a909
cmp eax, 0x7c
je 0x47a909
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x47a544
cmp dword [esi + 0x10], 0
jne 0x47a907
test dword [esi + 0x50], 0x10000000
je 0x47a919
jmp 0x47a89c
cmp eax, 0x2e
jne 0x47a5a4
push 5
lea ecx, [esi + 0x24]
call fcn.0047cbd0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x47a8e3
cmp byte [eax], 0x5c
jne 0x47a59c
lea edx, [eax + 1]
cmp edx, ecx
je 0x47a59c
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x47a586
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x47a599
cmp byte [ebp - 1], 0x29
je 0x47a599
test bl, 0x10
jne 0x47a59c
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x47a599
cmp dl, 0x7d
jne 0x47a59c
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x47a8e3
cmp eax, 0x5c
jne 0x47a6ef
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x47a5f5
cmp byte [eax], 0x5c
jne 0x47a5f2
lea edx, [eax + 1]
cmp edx, ecx
je 0x47a5f2
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x47a5dc
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x47a5ef
cmp byte [ebp - 1], 0x29
je 0x47a5ef
test bl, 0x10
jne 0x47a5f2
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x47a5ef
cmp dl, 0x7d
jne 0x47a5f2
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0047cf30
test byte [esi + 0x50], 0x80
je 0x47a6e3
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x47a669
push 4
lea ecx, [esi + 0x24]
call fcn.0047cbd0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x47a65d
cmp byte [eax], 0x5c
jne 0x47a65a
lea edx, [eax + 1]
cmp edx, ecx
je 0x47a65a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x47a644
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x47a657
cmp bl, 0x29
je 0x47a657
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x47a65a
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x47a657
cmp dl, 0x7d
jne 0x47a65a
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0047cf30
jmp 0x47a8f4
cmp al, 0x42
jne 0x47a6e3
push 4
lea ecx, [esi + 0x24]
call fcn.0047cbd0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x47a6d7
cmp byte [eax], 0x5c
jne 0x47a6d4
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x47a6d2
test byte [esi + 0x50], 8
jne 0x47a6aa
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x47a6c0
cmp cl, 0x29
je 0x47a6c0
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x47a6d2
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x47a6c0
mov edx, ecx
cmp bl, 0x7d
jne 0x47a6d2
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.0047cf30
jmp 0x47a8f4
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0047cf30
jmp 0x47a8f4
mov ecx, esi
call fcn.0047a940
jmp 0x47a8ea
cmp eax, 0x5b
jne 0x47a7a8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x47a745
cmp byte [eax], 0x5c
jne 0x47a742
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x47a740
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x47a726
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x47a73b
cmp cl, 0x29
je 0x47a73b
mov ecx, eax
test bl, 0x10
jne 0x47a740
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x47a73b
mov edx, ecx
cmp bl, 0x7d
jne 0x47a740
lea eax, [edx + 1]
jmp 0x47a742
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0047cf30
lea ecx, [esi + 0x24]
call fcn.00479d60
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x47a76d
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.0047cc40
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x47a78b
cmp eax, 0x5d
jne 0x47a78b
push eax
lea ecx, [esi + 0x24]
call fcn.00479cf0
mov ecx, esi
call fcn.0047cc40
mov ecx, esi
call fcn.0047b310
cmp dword [esi + 0x4c], 0x5d
jne 0x47a92b
mov ecx, esi
call fcn.0047cc40
jmp 0x47a8ea
cmp eax, 0x28
jne 0x47a827
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x47a7f9
cmp byte [eax], 0x5c
jne 0x47a7f6
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x47a7f4
test byte [esi + 0x50], 8
jne 0x47a7d9
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x47a7ef
cmp cl, 0x29
je 0x47a7ef
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x47a7f4
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x47a7ef
mov edx, ecx
cmp bl, 0x7d
jne 0x47a7f4
lea eax, [edx + 1]
jmp 0x47a7f6
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0047cf30
mov ecx, esi
call fcn.0047d130
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x47a919
mov ecx, esi
call fcn.0047cc40
test bl, bl
je 0x47a8f4
jmp 0x47a8ea
cmp eax, 0x5e
jne 0x47a83b
push 2
lea ecx, [esi + 0x24]
call fcn.0047cbd0
jmp 0x47a67e
cmp eax, 0x24
jne 0x47a852
push 3
lea ecx, [esi + 0x24]
call fcn.0047cbd0
lea edi, [esi + 8]
jmp 0x47a67e
cmp eax, 0x2a
je 0x47a910
cmp eax, 0x2b
je 0x47a910
cmp eax, 0x3f
je 0x47a910
cmp eax, 0x7b
je 0x47a910
cmp eax, 0x7d
jne 0x47a88a
test dword [esi + 0x50], 0x10000000
je 0x47a922
jmp 0x47a89c
cmp eax, 0x5d
jne 0x47a89c
test dword [esi + 0x50], 0x10000000
je 0x47a92b
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00479b40
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x47a8e3
cmp byte [eax], 0x5c
jne 0x47a8e1
inc eax
cmp eax, ecx
je 0x47a8e1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x47a8d0
mov dl, byte [eax]
cmp dl, 0x28
je 0x47a8df
cmp dl, 0x29
je 0x47a8df
test cl, 0x10
jne 0x47a8e1
mov al, byte [eax]
cmp al, 0x7b
je 0x47a8df
cmp al, 0x7d
jne 0x47a8e1
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0047cf30
mov ecx, esi
call fcn.0047cca0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x47a907
cmp eax, 0x7c
jne 0x47a523
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.0047c1b0
push 5
mov ecx, esi
call fcn.0047c1b0
push 6
mov ecx, esi
call fcn.0047c1b0
push 4
mov ecx, esi
call fcn.0047c1b0
int3