Function at 0x471220
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
or eax, 0xffffffff
mov word [ebp - 0xc], ax
push ebx
xor ecx, ecx
mov eax, 0x65
xor ebx, ebx
mov dword [ebp - 0x1c], eax
mov edx, 2
mul edx
seto cl
push esi
push edi
mov dword [ebp - 0x20], ebx
neg ecx
or ecx, eax
push ecx
call fcn.004800a7
add esp, 4
xor ecx, ecx
push 4
mov dword [ebp - 0x24], eax
mov word [eax], cx
call fcn.004800a7
add esp, 4
test eax, eax
je 0x496d57
mov dword [eax], 1
mov dword [ebp - 0x18], eax
mov edx, dword [ebp + 0x10]
cmp dword [edx + 8], ebx
jbe 0x4712af
xor edi, edi
mov eax, edx
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x4712a9
movzx eax, word [esi + 8]
cmp ax, 0x3f
jle 0x471372
push esi
call fcn.0047fcac
mov eax, dword [ebp + 0x10]
add esp, 4
inc edi
cmp edi, dword [eax + 8]
jb 0x471285
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov dword [edx + 8], ebx
cmp word [eax], bx
je 0x47149f
mov ecx, dword [ebp + 0xc]
jmp 0x4712d0
movzx eax, word [ecx + ebx*2]
cmp eax, 0x20
je 0x4713c7
cmp eax, 9
je 0x4713c7
movzx eax, word [ecx + ebx*2]
test ax, ax
je 0x47148b
mov esi, eax
mov dword [ebp - 8], ebx
mov word [ebp - 0xa], bx
cmp esi, 0x30
jae 0x4713cd
cmp esi, 0x2e
je 0x4713d6
cmp esi, 0x41
jae 0x47154d
cmp esi, 0x61
jae 0x4717c2
cmp esi, 0x5f
je 0x471556
mov eax, esi
cmp eax, 0x24
je 0x4714e5
cmp eax, 0x3d
je 0x471587
cmp eax, 0x28
je 0x4715c5
cmp eax, 0x29
je 0x4715a8
cmp eax, 0x22
je 0x4715e2
sub eax, 0x1a
cmp eax, 0x44
ja 0x497000
movzx eax, byte [eax + 0x402c58]
jmp dword [eax*4 + 0x402c1c]
cmp ax, 0x30
jl 0x47129d
mov ecx, dword [esi]
test ecx, ecx
je 0x47129d
mov eax, dword [ecx + 0xc]
dec dword [eax]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 8], ecx
cmp dword [edx], ebx
je 0x496d5f
mov ecx, dword [ebp - 8]
push ecx
call fcn.0047fcac
add esp, 4
jmp 0x47129d
inc ebx
jmp 0x4712d0
cmp esi, 0x39
ja 0x471305
lea ecx, [ebp - 0x24]
push ecx
mov ecx, dword [ebp + 0xc]
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 8]
call fcn.00471b50
cmp al, 1
jne 0x496d81
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 0x14]
call fcn.00471120
mov ebx, dword [ebp - 8]
jmp 0x47147d
cmp di, 0x30
jae 0x47169e
cmp di, 0x5f
je 0x471518
test esi, esi
je 0x49702b
lea eax, [ebp - 0x24]
call fcn.00471090
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x24]
push esi
push edi
call dword [fcn.0047d620]
mov ax, word [ebp - 0xc]
cmp ax, 0x30
jge 0x4716f8
mov eax, 0x33
push 0x10
mov word [ebp - 0xc], ax
call fcn.004800a7
add esp, 4
test eax, eax
je 0x496f57
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [ebp - 0x14], eax
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 0x14]
call fcn.00471120
mov eax, dword [ebp + 0xc]
cmp word [eax + ebx*2], 0
jne 0x4712c1
mov ax, word [ebp - 0xc]
cmp ax, 0x30
jl 0x47149f
cmp ax, 0x3f
jle 0x4716ce
mov edi, dword [ebp + 0x10]
mov ecx, 0x7f
lea eax, [ebp - 0x14]
mov word [ebp - 0xc], cx
mov dword [ebp - 0x14], 0
mov word [ebp - 0xa], bx
call fcn.00471120
mov esi, dword [ebp - 0x18]
dec dword [esi]
jne 0x4714da
mov edx, dword [ebp - 0x24]
push edx
call fcn.0047fcac
add esp, 4
push esi
call fcn.0047fcac
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea esi, [ebp - 0x24]
inc ebx
call fcn.00471cf0
mov eax, dword [ebp + 0xc]
movzx edi, word [eax + ebx*2]
mov esi, dword [ebp - 0x20]
cmp di, 0x5a
ja 0x471504
cmp di, 0x41
jae 0x471518
cmp di, 0x61
jb 0x471401
cmp di, 0x7a
ja 0x471401
mov eax, dword [ebp - 0x18]
cmp dword [eax], 1
jg 0x496eef
lea eax, [esi + 1]
lea esi, [ebp - 0x24]
call fcn.004718a0
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp + 0xc]
mov word [eax + esi*2], di
inc esi
xor ecx, ecx
inc ebx
mov word [eax + esi*2], cx
movzx edi, word [edx + ebx*2]
mov dword [ebp - 0x20], esi
jmp 0x4714f8
cmp esi, 0x5a
ja 0x471317
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x14]
push ecx
push edx
lea eax, [ebp - 8]
call fcn.00471a00
cmp dword [ebp - 0x14], 0xffffffff
je 0x496f8e
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 0x14]
call fcn.00471120
mov ebx, dword [ebp - 8]
jmp 0x47147d
mov edx, dword [ebp + 0xc]
inc ebx
cmp word [edx + ebx*2], 0x3d
lea esi, [ebp - 0x14]
je 0x496edf
mov edi, 0x41
call fcn.004710b0
jmp 0x471472
mov edi, 0x48
lea esi, [ebp - 0x14]
call fcn.004710b0
mov edi, dword [ebp + 0x10]
mov eax, esi
call fcn.00471120
inc ebx
jmp 0x47147d
mov edi, 0x47
lea esi, [ebp - 0x14]
call fcn.004710b0
mov edi, dword [ebp + 0x10]
mov eax, esi
call fcn.00471120
inc ebx
jmp 0x47147d
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push eax
push ecx
lea eax, [ebp - 0x24]
lea edi, [ebp - 8]
call fcn.00471920
lea esi, [ebp - 0x14]
test eax, eax
jne 0x496fd0
lea edi, [eax + 0x36]
call fcn.004710b0
lea esi, [ebp - 0x24]
lea edi, [ebp - 0x14]
call fcn.00470c20
mov eax, edi
mov edi, dword [ebp + 0x10]
call fcn.00471120
mov ebx, dword [ebp - 8]
jmp 0x47147d
cmp di, 0x39
jbe 0x471518
jmp 0x47140b
mov esi, dword [ebp - 0x14]
test esi, esi
je 0x47149f
mov eax, dword [esi + 0xc]
dec dword [eax]
mov ecx, dword [esi + 0xc]
cmp dword [ecx], 0
je 0x497056
push esi
call fcn.0047fcac
add esp, 4
jmp 0x47149f
cmp ax, 0x3f
jg 0x471441
jmp 0x496f41
lea esi, [ebp - 0x14]
call fcn.004710b0
lea esi, [ebp - 0x24]
lea edi, [ebp - 0x14]
call fcn.00470c20
jmp 0x471472
cmp esi, 0x7a
jbe 0x471556
jmp 0x471320
mov dword [ebp - 0x18], ebx
jmp 0x471279
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
push ecx
call fcn.0047fcac
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0xc]
add esp, 4
push eax
call fcn.0047fcac
add esp, 4
jmp 0x471399
mov ebx, dword [ebp - 8]
cmp esi, 0x2e
jne 0x47130e
lea esi, [ebp - 0x24]
inc ebx
call fcn.00471cf0
mov esi, dword [ebp + 0xc]
movzx eax, word [esi + ebx*2]
cmp ax, 0x41
jb 0x496db1
cmp ax, 0x5a
jbe 0x496df7
cmp ax, 0x61
jb 0x496dc5
cmp ax, 0x7a
jbe 0x496df7
cmp ax, 0x30
jb 0x496dd9
cmp ax, 0x39
jbe 0x496df7
cmp ax, 0x5f
je 0x496df7
cmp dword [ebp - 0x20], 0
je 0x496f63
mov edi, 0x35
jmp 0x4717aa
push eax
lea eax, [ebp - 0x24]
call fcn.004719c0
inc ebx
jmp 0x496d99
mov edi, 0x50
call fcn.004710b0
inc ebx
jmp 0x471472
dec dword [eax]
lea esi, [ebp - 0x24]
call fcn.0047be40
mov esi, dword [ebp - 0x20]
lea ecx, [esi + 2]
push ecx
call 0x4b1783
xor ecx, ecx
mov dword [ebp - 0x1c], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004800a7
mov edx, dword [ebp - 0x24]
add esp, 4
lea ecx, [esi + esi + 2]
push ecx
push edx
push eax
mov dword [ebp - 8], eax
call fcn.0047f930
mov eax, dword [ebp - 8]
add esp, 0xc
mov dword [ebp - 0x24], eax
jmp 0x471535
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x471441
push eax
call 0x4b1765
jmp 0x471441
mov dword [ebp - 0x14], 0
jmp 0x471472
mov ecx, dword [ebp + 8]
dec ebx
push ebx
push 0x138b
push ecx
call 0x4caca4
lea ecx, [ebp - 0x24]
call fcn.00470bf0
lea edx, [ebp - 0x14]
push edx
call 0x4b6549
mov eax, 1
jmp 0x4714dc
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
push eax
push 0x138c
push ecx
call 0x4caca4
lea ecx, [ebp - 0x24]
call fcn.00470bf0
lea edx, [ebp - 0x14]
push edx
call 0x4b6549
mov eax, 1
jmp 0x4714dc
mov edi, 0x7f
call fcn.004710b0
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 0x14]
call fcn.00471120
lea ecx, [ebp - 0x24]
call fcn.00470bf0
lea ecx, [ebp - 0x14]
push ecx
call 0x4b6549
mov eax, 1
jmp 0x4714dc
mov edx, dword [ebp + 8]
push ebx
push 0x1388
push edx
call 0x4caca4
mov edi, 0x7f
lea esi, [ebp - 0x14]
call fcn.004710b0
mov edi, dword [ebp + 0x10]
mov eax, esi
call fcn.00471120
jmp 0x49703b
mov edx, dword [ebp + 8]
dec ebx
push ebx
push 0x138b
push edx
call 0x4caca4
lea ecx, [ebp - 0x24]
call fcn.00470bf0
lea eax, [ebp - 0x14]
push eax
call 0x4b6549
mov eax, 1
jmp 0x4714dc
mov edx, dword [esi]
push edx
call fcn.0047fcac
mov eax, dword [esi + 0xc]
add esp, 4
push eax
call fcn.0047fcac
add esp, 4
jmp 0x4716ea