Function at 0x47ca50
Capabilities:
Parse credit card information

Disassembly:
mov eax, 0x2010
call fcn.00495e40
mov eax, dword [esp + 0x201c]
push ebx
mov ebx, dword [esp + 0x201c]
push ebp
xor ebp, ebp
or ecx, 0xffffffff
push esi
push edi
mov word [esp + 0x18], cx
cmp dword [eax + 8], ebp
jbe 0x47caae
xor edi, edi
lea ecx, [ecx]
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x47caa8
movzx eax, word [esi + 8]
cmp ax, 0x3f
jle 0x47cb6f
push esi
call fcn.00482579
mov eax, dword [esp + 0x2030]
add esp, 4
inc edi
cmp edi, dword [eax + 8]
jb 0x47ca80
mov dword [eax + 8], ebp
cmp word [ebx], bp
je 0x47cc29
lea ebx, [ebx]
movzx eax, word [ebx + ebp*2]
cmp ax, 0x20
je 0x47cbc7
cmp ax, 9
je 0x47cbc7
movzx eax, word [ebx + ebp*2]
test ax, ax
je 0x47cc14
movzx esi, ax
xor edi, edi
mov dword [esp + 0x1c], ebp
mov word [esp + 0x1a], bp
cmp si, 0x30
jae 0x47cbcd
cmp si, 0x2e
je 0x47cbd7
cmp si, 0x41
jae 0x47ccf7
cmp si, 0x61
jae 0x47cfc3
cmp si, 0x5f
je 0x47cd01
movzx eax, si
cmp eax, 0x24
je 0x47cc60
cmp eax, 0x3d
je 0x47cd38
cmp eax, 0x28
je 0x47cd89
cmp eax, 0x29
je 0x47cd68
cmp eax, 0x22
je 0x47cdaa
sub eax, 0x1a
cmp eax, 0x44
ja 0x49aa6c
movzx edx, byte [eax + 0x40d4bc]
jmp dword [edx*4 + 0x40d480]
cmp ax, 0x30
jl 0x47ca98
mov eax, dword [esi]
test eax, eax
je 0x47ca98
mov ecx, dword [eax + 0xc]
dec dword [ecx]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x1c], eax
cmp dword [edx], ebp
je 0x49a85d
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00482579
add esp, 4
jmp 0x47ca98
inc ebp
jmp 0x47cac0
cmp si, 0x39
ja 0x47cafd
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x24]
mov eax, ebx
call fcn.0047d180
cmp al, 1
jne 0x49a87e
mov edi, dword [esp + 0x202c]
lea ecx, [esp + 0x10]
push ecx
call fcn.0047c940
mov ebp, dword [esp + 0x1c]
cmp word [ebx + ebp*2], 0
jne 0x47cac0
mov ax, word [esp + 0x18]
cmp ax, 0x30
jl 0x47cc29
cmp ax, 0x3f
jle 0x47cec5
mov edi, dword [esp + 0x202c]
lea ecx, [esp + 0x10]
mov eax, 0x7f
push ecx
mov word [esp + 0x1c], ax
mov dword [esp + 0x14], 0
mov word [esp + 0x1e], bp
call fcn.0047c940
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2010
ret 0xc
movzx eax, word [ebx + ebp*2 + 2]
inc ebp
cmp ax, 0x5a
ja 0x47cc72
cmp ax, 0x41
jae 0x47cc7e
cmp ax, 0x61
jb 0x47cc86
cmp ax, 0x7a
ja 0x47cc86
mov word [esp + edi*2 + 0x20], ax
inc edi
jmp 0x47cc60
cmp ax, 0x30
jae 0x47ceb6
cmp ax, 0x5f
je 0x47cc7e
lea ecx, [esp + 0x20]
xor eax, eax
push ecx
mov word [esp + edi*2 + 0x24], ax
call dword [0x47d5b4]
test edi, edi
je 0x49aa19
mov ax, word [esp + 0x18]
cmp ax, 0x30
jge 0x47cef0
mov edx, 0x33
mov word [esp + 0x18], dx
mov dword [esp + 0x10], 0
lea edi, [esp + 0x20]
lea ebx, [esp + 0x10]
call fcn.0047c900
mov edi, dword [esp + 0x202c]
push ebx
call fcn.0047c940
mov ebx, dword [esp + 0x2028]
jmp 0x47cc09
cmp si, 0x5a
ja 0x47cb11
push ebx
lea ecx, [esp + 0x24]
lea edx, [esp + 0x14]
lea eax, [esp + 0x20]
call fcn.0047d330
cmp dword [esp + 0x10], 0xffffffff
je 0x49aa41
mov edi, dword [esp + 0x202c]
lea ecx, [esp + 0x10]
push ecx
call fcn.0047c940
mov ebp, dword [esp + 0x1c]
jmp 0x47cc09
inc ebp
cmp word [ebx + ebp*2], 0x3d
lea esi, [esp + 0x10]
je 0x49a9f2
mov edi, 0x41
call fcn.0047d110
mov edi, dword [esp + 0x202c]
lea edx, [esp + 0x10]
push edx
call fcn.0047c940
jmp 0x47cc09
mov edi, 0x48
lea esi, [esp + 0x10]
call fcn.0047d110
mov edi, dword [esp + 0x202c]
push esi
call fcn.0047c940
inc ebp
jmp 0x47cc09
mov edi, 0x47
lea esi, [esp + 0x10]
call fcn.0047d110
mov edi, dword [esp + 0x202c]
push esi
call fcn.0047c940
inc ebp
jmp 0x47cc09
mov ecx, dword [esp + 0x2024]
lea eax, [esp + 0x20]
push eax
push ecx
lea edx, [esp + 0x24]
mov edi, ebx
call fcn.0047c830
lea esi, [esp + 0x10]
test eax, eax
jne 0x49aacf
lea edi, [eax + 0x36]
call fcn.0047d110
lea edi, [esp + 0x20]
mov ebx, esi
call fcn.0047c900
mov edi, dword [esp + 0x202c]
push esi
call fcn.0047c940
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x2028]
jmp 0x47cc09
cmp ax, 0x39
jbe 0x47cc7e
jmp 0x47cc90
mov esi, dword [esp + 0x10]
test esi, esi
je 0x47cc29
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x49aafe
push esi
call fcn.00482579
add esp, 4
jmp 0x47cc29
cmp ax, 0x3f
jg 0x47ccbf
jmp 0x49aa02
cmp si, 0x7a
jbe 0x47cd01
jmp 0x47cb1b
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.00482579
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
push eax
call fcn.00482579
add esp, 8
jmp 0x47cb97
mov ebp, dword [esp + 0x1c]
cmp si, 0x2e
jne 0x47cb07
movzx eax, word [ebx + ebp*2 + 2]
inc ebp
cmp ax, 0x41
jb 0x49a8a6
cmp ax, 0x5a
jbe 0x49a8f8
cmp ax, 0x61
jb 0x49a8ba
cmp ax, 0x7a
jbe 0x49a8f8
cmp ax, 0x30
jb 0x49a8ce
cmp ax, 0x39
jbe 0x49a8f8
cmp ax, 0x5f
je 0x49a8f8
xor edx, edx
mov word [esp + edi*2 + 0x20], dx
test edi, edi
je 0x49aa19
lea edi, [edx + 0x35]
lea esi, [esp + 0x10]
call fcn.0047d110
jmp 0x47ccd1
mov word [esp + edi*2 + 0x20], ax
inc edi
jmp 0x49a88c
mov edi, 0x50
call fcn.0047d110
inc ebp
jmp 0x47cd52
mov eax, dword [esp + 0x10]
test eax, eax
je 0x47ccbf
push eax
call 0x4b71c6
jmp 0x47ccbf
mov ecx, dword [esp + 0x2024]
dec ebp
push ebp
push 0x9e
push ecx
call fcn.004a960c
lea edx, [esp + 0x10]
push edx
call 0x4bb758
mov eax, 1
jmp 0x47cc53
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2024]
push eax
push 0x89
push ecx
call fcn.004a960c
lea edx, [esp + 0x10]
push edx
call 0x4bb758
mov eax, 1
jmp 0x47cc53
mov edx, dword [esp + 0x2024]
push ebp
push 0x6a
push edx
call fcn.004a960c
mov edi, 0x7f
lea esi, [esp + 0x10]
call fcn.0047d110
mov edi, dword [esp + 0x202c]
push esi
call fcn.0047c940
push esi
call 0x4bb758
mov eax, 1
jmp 0x47cc53
mov edi, 0x7f
call fcn.0047d110
mov edi, dword [esp + 0x202c]
lea edx, [esp + 0x10]
push edx
call fcn.0047c940
lea eax, [esp + 0x10]
push eax
call 0x4bb758
mov eax, 1
jmp 0x47cc53
mov ecx, dword [esi]
push ecx
call fcn.00482579
mov edx, dword [esi + 0xc]
push edx
call fcn.00482579
add esp, 8
jmp 0x47cee2