Function at 0x47e320
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5bd646
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x80
mov eax, dword [0x6c21e4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x54]
push 0
xorps xmm0, xmm0
push 0x5f36f4
push eax
movups xmmword [ebp - 0x54], xmm0
movq qword [ebp - 0x44], xmm0
call fcn.00513eb0
xorps xmm0, xmm0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x6c]
movq qword [ebp - 0x5c], xmm0
movups xmmword [ebp - 0x6c], xmm0
call fcn.00513f30
xor esi, esi
lea ecx, [ebp - 0x20]
xorps xmm0, xmm0
mov dword [ebp - 0x84], esi
xor edi, edi
movq qword [ebp - 0x20], xmm0
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x18], esi
call fcn.00516ef0
xorps xmm0, xmm0
mov dword [ebp - 0x28], esi
lea ecx, [ebp - 0x30]
movq qword [ebp - 0x30], xmm0
call fcn.00516ef0
xorps xmm0, xmm0
mov dword [ebp - 0x34], esi
lea ecx, [ebp - 0x3c]
movq qword [ebp - 0x3c], xmm0
call fcn.00516ef0
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], esi
call fcn.00511760
mov byte [ebp - 4], 5
push edi
lea ecx, [ebp - 0x54]
call fcn.00513e30
push eax
lea ecx, [ebp - 0x20]
call fcn.00516e30
lea ecx, [ebp - 0x20]
call fcn.00516cc0
mov edi, eax
cmp edi, 2
jl 0x47e530
push 0
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x3b
je 0x47e530
push 0
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x5b
jne 0x47e538
lea eax, [edi - 1]
push eax
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x5d
jne 0x47e538
lea ecx, [ebp - 0x24]
call fcn.00510170
cmp edi, 5
jl 0x47e530
push 1
lea ecx, [ebp - 0x20]
call fcn.00516d60
lea ecx, [ebp - 0x20]
cmp word [eax], 0x2d
jne 0x47e511
lea eax, [edi - 3]
push eax
push 3
call fcn.005157c0
push 0
lea ecx, [ebp - 0x20]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x24]
call fcn.00510300
movzx eax, al
add dword [ebp - 0x84], eax
mov edi, dword [ebp - 0x70]
mov esi, dword [ebp - 0x84]
inc edi
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x70], edi
call fcn.00513e20
cmp edi, eax
jb 0x47e3f0
lea ecx, [ebp - 0x24]
call fcn.005116a0
lea ecx, [ebp - 0x3c]
call fcn.00516d50
lea ecx, [ebp - 0x30]
call fcn.00516d50
lea ecx, [ebp - 0x20]
call fcn.00516d50
lea ecx, [ebp - 0x6c]
call fcn.00513e90
lea ecx, [ebp - 0x54]
call fcn.00513e90
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0041e865
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
lea eax, [edi - 2]
push eax
push 2
call fcn.005157c0
push ecx
push 0xffffffffffffffff
lea ecx, [ebp - 0x20]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x24]
call fcn.005116f0
mov edi, dword [ebp - 0x70]
jmp 0x47e4ab
push 0
push 0
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x30]
call fcn.005162e0
xor esi, esi
mov dword [ebp - 0x8c], eax
push esi
lea ecx, [ebp - 0x20]
mov byte [ebp - 0x85], 0
mov byte [ebp - 0x7d], 0
call fcn.00516d60
cmp word [eax], 0x40
jne 0x47e589
push 1
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x3d
jne 0x47e589
push 1
lea ecx, [ebp - 0x20]
call fcn.00515800
jmp 0x47e61a
test edi, edi
jle 0x47e61a
push esi
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x22
jne 0x47e5bc
cmp byte [ebp - 0x85], 0
je 0x47e5af
cmp byte [ebp - 0x7d], 0
je 0x47e61a
test esi, esi
jne 0x47e5ef
mov byte [ebp - 0x85], 1
jmp 0x47e611
push esi
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x5c
jne 0x47e5d7
cmp byte [ebp - 0x7d], 0
jne 0x47e5d7
mov byte [ebp - 0x7d], 1
jmp 0x47e611
push esi
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x3d
jne 0x47e5ef
cmp byte [ebp - 0x85], 0
je 0x47e61a
push esi
lea ecx, [ebp - 0x20]
mov byte [ebp - 0x7d], 0
call fcn.00516d60
mov ecx, dword [ebp - 0x8c]
mov ax, word [eax]
mov word [ecx], ax
add ecx, 2
mov dword [ebp - 0x8c], ecx
inc esi
cmp esi, edi
jl 0x47e591
mov eax, dword [ebp - 0x8c]
xor ecx, ecx
mov word [eax], cx
lea ecx, [ebp - 0x30]
call fcn.00516ab0
push esi
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x3d
je 0x47e654
nop dword [eax]
cmp esi, edi
jge 0x47e654
inc esi
lea ecx, [ebp - 0x20]
push esi
call fcn.00516d60
cmp word [eax], 0x3d
jne 0x47e640
inc esi
cmp esi, edi
jge 0x47e4a2
push 0
inc esi
lea ecx, [ebp - 0x20]
push esi
call fcn.005157c0
push 3
lea ecx, [ebp - 0x20]
call fcn.00514ca0
lea ecx, [ebp - 0x20]
call fcn.00516cc0
lea ecx, [ebp - 0x54]
mov esi, eax
call fcn.00513e20
mov edi, dword [ebp - 0x70]
dec eax
cmp edi, eax
jae 0x47e73a
cmp esi, 1
jle 0x47e737
lea eax, [esi - 1]
push eax
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x5c
jne 0x47e737
lea eax, [esi - 2]
push eax
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x5c
je 0x47e737
inc edi
lea ecx, [ebp - 0x54]
push edi
call fcn.00513e30
push eax
lea ecx, [ebp - 0x3c]
call fcn.00516e30
push 3
lea ecx, [ebp - 0x3c]
call fcn.00514ca0
lea ecx, [ebp - 0x3c]
call fcn.005167b0
test al, al
jne 0x47e726
push 1
lea ecx, [ebp - 0x20]
call fcn.00515870
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x3c]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x20]
call fcn.00515270
lea ecx, [ebp - 0x20]
call fcn.00516cc0
mov esi, eax
lea ecx, [ebp - 0x54]
call fcn.00513e20
dec eax
cmp edi, eax
jb 0x47e691
mov dword [ebp - 0x70], edi
push 0
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x2d
jne 0x47e769
lea ecx, [ebp - 0x30]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x24]
call fcn.00510b20
movzx eax, al
add dword [ebp - 0x84], eax
jmp 0x47e4a5
push 0
lea ecx, [ebp - 0x20]
call fcn.00516d60
lea ecx, [ebp - 0x20]
cmp word [eax], 0x22
jne 0x47e880
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
call fcn.00516cc0
xor ecx, ecx
mov edx, 2
lea esi, [eax + 1]
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041ec10
add esp, 4
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], esi
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 6
mov dword [ebp - 0x8c], eax
mov esi, 1
mov byte [ebp - 0x7d], 0
call fcn.00516cc0
cmp eax, esi
jle 0x47e817
mov edi, dword [ebp - 0x8c]
push esi
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x22
jne 0x47e85d
cmp byte [ebp - 0x7d], 0
je 0x47e80e
push esi
lea ecx, [ebp - 0x20]
mov byte [ebp - 0x7d], 0
call fcn.00516d60
mov ax, word [eax]
mov word [edi], ax
add edi, 2
lea ecx, [ebp - 0x20]
inc esi
call fcn.00516cc0
cmp esi, eax
jl 0x47e7d6
mov dword [ebp - 0x8c], edi
mov edi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x8c]
xor ecx, ecx
mov esi, dword [ebp - 0x7c]
push ecx
push esi
mov word [eax], cx
lea ecx, [ebp - 0x30]
push 1
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x24]
call fcn.00510c50
movzx eax, al
add dword [ebp - 0x84], eax
mov byte [ebp - 4], 5
test esi, esi
je 0x47e4a5
push esi
call fcn.0041e876
add esp, 4
jmp 0x47e4a5
push esi
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x5c
jne 0x47e7eb
cmp byte [ebp - 0x7d], 0
jne 0x47e7eb
mov byte [ebp - 0x7d], 1
jmp 0x47e801
push 6
push 1
push 1
push 0
push 0x611aec
call fcn.00515510
lea ecx, [ebp - 0x20]
test eax, eax
je 0x47e92c
push 6
call fcn.00515800
push 3
lea ecx, [ebp - 0x20]
call fcn.00514ca0
push 8
lea ecx, [ebp - 0x20]
call fcn.005158b0
xorps xmm0, xmm0
push 4
movlpd qword [ebp - 0x7c], xmm0
call fcn.0041ec10
mov esi, eax
mov dword [ebp - 0x78], 4
add esp, 4
mov dword [ebp - 0x7c], esi
push 1
push 4
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 7
call fcn.00516ab0
mov edx, esi
mov ecx, eax
call fcn.00513130
test eax, eax
je 0x47e912
push 0
push esi
push 4
lea ecx, [ebp - 0x30]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x24]
call fcn.00510c50
movzx eax, al
add dword [ebp - 0x84], eax
mov byte [ebp - 4], 5
test esi, esi
je 0x47e4a5
push esi
call fcn.0041e876
add esp, 4
jmp 0x47e4a5
push 4
push 1
push 1
push 0
push 0x611afc
call fcn.00515510
lea ecx, [ebp - 0x20]
push 4
test eax, eax
je 0x47e956
call fcn.00515800
mov esi, 3
jmp 0x47ea0b
push 1
push 1
push 0
push 0x611b08
call fcn.00515510
test eax, eax
je 0x47e4a5
push 4
lea ecx, [ebp - 0x20]
call fcn.00515800
push 1
lea ecx, [ebp - 0x20]
call fcn.00514ca0
push 3
push 1
push 1
push 1
push 0x5eff28
lea ecx, [ebp - 0x20]
call fcn.00515510
mov dword [ebp - 0x8c], eax
test eax, eax
je 0x47e4a5
push 0
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x62
je 0x47e9f8
push 0
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x42
je 0x47e9f8
push 0
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x61
je 0x47e9f1
push 0
lea ecx, [ebp - 0x20]
call fcn.00516d60
cmp word [eax], 0x41
je 0x47e9f1
lea ecx, [ebp - 0x20]
call fcn.00515a90
mov esi, eax
jmp 0x47e9fd
mov esi, 0xa
jmp 0x47e9fd
mov esi, 0xb
push dword [ebp - 0x8c]
lea ecx, [ebp - 0x20]
call fcn.00515800
push 8
lea ecx, [ebp - 0x20]
call fcn.00514ca0
push 0
push 0
push 0x5ed51c
push 0x5f014c
lea ecx, [ebp - 0x20]
call fcn.00514e30
lea ecx, [ebp - 0x20]
call fcn.00516cc0
cdq
xorps xmm0, xmm0
sub eax, edx
movlpd qword [ebp - 0x74], xmm0
sar eax, 1
push eax
mov dword [ebp - 0x8c], eax
call fcn.0041ec10
mov ecx, dword [ebp - 0x8c]
add esp, 4
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], ecx
cmp esi, 0xb
mov byte [ebp - 4], 8
sete al
movzx eax, al
push eax
push ecx
lea ecx, [ebp - 0x20]
call fcn.00516ab0
mov edx, dword [ebp - 0x74]
mov ecx, eax
call fcn.00513130
test eax, eax
je 0x47eaae
push dword [ebp - 0x8c]
lea ecx, [ebp - 0x30]
push dword [ebp - 0x74]
push esi
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x24]
call fcn.00510c50
mov esi, dword [ebp - 0x84]
movzx eax, al
add esi, eax
mov dword [ebp - 0x84], esi
jmp 0x47eab4
mov esi, dword [ebp - 0x84]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x47e4ab
push eax
call fcn.0041e876
add esp, 4
jmp 0x47e4ab