Function at 0x41f7e0
Capabilities:
Parse credit card information

Disassembly:
sub esp, 8
xor al, al
push ebx
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 0x4c]
cmp ecx, 0xffffffff
je 0x41f89d
cmp ecx, 0x7c
je 0x41f89d
cmp ecx, 0x29
jne 0x41f8a4
cmp dword [esi + 0x10], 0
jne 0x41f89d
cmp ecx, ecx
jne 0x41f8a4
test dword [esi + 0x50], 0x10000000
je 0x41fd52
lea edi, [esi + 0x50]
cmp ecx, 0x5d
jne 0x41f83b
test dword [edi], 0x10000000
je 0x41fd59
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00421190
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41f881
cmp byte [eax], 0x5c
jne 0x41f87f
inc eax
cmp eax, ecx
je 0x41f87f
mov edx, dword [edi]
test dl, 8
jne 0x41f86e
mov cl, byte [eax]
cmp cl, 0x28
je 0x41f87d
cmp cl, 0x29
je 0x41f87d
test dl, 0x10
jne 0x41f87f
mov al, byte [eax]
cmp al, 0x7b
je 0x41f87d
cmp al, 0x7d
jne 0x41f87f
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0041e210
mov ecx, esi
call fcn.00420f70
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x41f7f6
pop edi
pop esi
pop ebx
add esp, 8
ret
cmp ecx, 0x2e
jne 0x41f961
push 0x14
call fcn.0046b287
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x41f8fb
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x41f881
cmp byte [eax], 0x5c
jne 0x41f959
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x41f957
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x41f937
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x41f94c
cmp cl, 0x29
je 0x41f94c
mov ecx, eax
test bl, 0x10
jne 0x41f957
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x41f94c
mov edx, ecx
cmp bl, 0x7d
jne 0x41f957
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x41f881
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x41f881
cmp ecx, 0x5c
jne 0x41fb10
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x41f9b7
cmp byte [eax], cl
jne 0x41f9b4
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x41f9b2
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x41f998
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x41f9ad
cmp cl, 0x29
je 0x41f9ad
mov ecx, eax
test bl, 0x10
jne 0x41f9b2
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x41f9ad
mov edx, ecx
cmp bl, 0x7d
jne 0x41f9b2
lea eax, [edx + 1]
jmp 0x41f9b4
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0041e210
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x41fa98
cmp byte [esi + 0x48], 0x62
jne 0x41fa98
push 0x14
call fcn.0046b287
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x41fa24
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x41fd0a
cmp byte [eax], 0x5c
jne 0x41fa89
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x41fa87
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x41fa60
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x41fa75
cmp cl, 0x29
je 0x41fa75
mov ecx, eax
test bl, 0x10
jne 0x41fa87
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x41fa75
mov edx, ecx
cmp bl, 0x7d
jne 0x41fa87
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.0041e210
jmp 0x41f88f
mov eax, ecx
inc eax
mov ecx, esi
mov dword [esi], eax
call fcn.0041e210
jmp 0x41f88f
test eax, eax
je 0x41fb04
cmp byte [esi + 0x48], 0x42
jne 0x41fb04
push 0x14
call fcn.0046b287
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x41faf0
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov eax, ecx
mov dword [esi + 0x28], ecx
xor dword [eax + 8], 1
jmp 0x41fcd0
mov ecx, esi
call fcn.00420c40
jmp 0x41f888
cmp ecx, 0x5b
jne 0x41fbae
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41fb53
cmp byte [eax], 0x5c
jne 0x41fb51
inc eax
cmp eax, ecx
je 0x41fb51
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x41fb40
mov cl, byte [eax]
cmp cl, 0x28
je 0x41fb4f
cmp cl, 0x29
je 0x41fb4f
test dl, 0x10
jne 0x41fb51
mov al, byte [eax]
cmp al, 0x7b
je 0x41fb4f
cmp al, 0x7d
jne 0x41fb51
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0041e210
mov ecx, esi
call fcn.00420b10
cmp dword [esi + 0x4c], 0x5d
jne 0x41fd59
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41f881
cmp byte [eax], 0x5c
jne 0x41f87f
inc eax
cmp eax, ecx
je 0x41f87f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41fba6
mov dl, byte [eax]
cmp dl, 0x28
je 0x41f87d
cmp dl, 0x29
je 0x41f87d
test cl, 0x10
jmp 0x41f871
cmp ecx, 0x28
jne 0x41fc59
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41fbf1
cmp byte [eax], 0x5c
jne 0x41fbef
inc eax
cmp eax, ecx
je 0x41fbef
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41fbde
mov dl, byte [eax]
cmp dl, 0x28
je 0x41fbed
cmp dl, 0x29
je 0x41fbed
test cl, 0x10
jne 0x41fbef
mov al, byte [eax]
cmp al, 0x7b
je 0x41fbed
cmp al, 0x7d
jne 0x41fbef
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0041e210
mov ecx, esi
call fcn.00420d80
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x41fd52
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41fc45
cmp byte [eax], 0x5c
jne 0x41fc43
inc eax
cmp eax, ecx
je 0x41fc43
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41fc32
mov dl, byte [eax]
cmp dl, 0x28
je 0x41fc41
cmp dl, 0x29
je 0x41fc41
test cl, 0x10
jne 0x41fc43
mov al, byte [eax]
cmp al, 0x7b
je 0x41fc41
cmp al, 0x7d
jne 0x41fc43
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0041e210
test bl, bl
je 0x41f88f
jmp 0x41f888
cmp ecx, 0x5e
jne 0x41fc70
push 0x14
call fcn.0046b287
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x41fc89
cmp ecx, 0x24
jne 0x41fd16
push 0x14
call fcn.0046b287
mov ecx, eax
mov dword [ecx + 4], 3
mov dword [ecx], vtable.std::_Node_base.0
add esp, 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x41fcc7
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x41fd0a
cmp byte [eax], 0x5c
jne 0x41fd08
inc eax
cmp eax, ecx
je 0x41fd08
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41fcf7
mov dl, byte [eax]
cmp dl, 0x28
je 0x41fd06
cmp dl, 0x29
je 0x41fd06
test cl, 0x10
jne 0x41fd08
mov al, byte [eax]
cmp al, 0x7b
je 0x41fd06
cmp al, 0x7d
jne 0x41fd08
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0041e210
jmp 0x41f88f
cmp ecx, 0x2a
je 0x41fd44
cmp ecx, 0x2b
je 0x41fd44
cmp ecx, 0x3f
je 0x41fd44
cmp ecx, 0x7b
je 0x41fd44
cmp ecx, 0x7d
jne 0x41f827
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x41fd4b
jmp 0x41f83b
push 0xa
call fcn.0041e200
push 6
call fcn.0041e200
push 5
call fcn.0041e200
push 4
call fcn.0041e200
int3