Function at 0x41cad0
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x41cb83
cmp eax, 0x7c
je 0x41cb83
cmp eax, 0x29
jne 0x41cb89
cmp dword [esi + 0x10], 0
jne 0x41cb83
test dword [esi + 0x50], 0x10000000
je 0x41d014
cmp eax, 0x5d
jne 0x41cb1e
test dword [esi + 0x50], 0x10000000
je 0x41d01b
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0041d6e0
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x41cb67
cmp byte [eax], 0x5c
jne 0x41cb65
inc eax
cmp eax, ecx
je 0x41cb65
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41cb52
mov dl, byte [eax]
cmp dl, 0x28
je 0x41cb63
cmp dl, 0x29
je 0x41cb63
test cl, 0x10
jne 0x41cb65
mov cl, byte [eax]
cmp cl, 0x7b
je 0x41cb63
cmp cl, 0x7d
jne 0x41cb65
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0041c1a0
mov ecx, esi
call fcn.0041d590
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x41cae3
pop edi
pop esi
mov al, cl
pop ebx
ret
cmp eax, 0x2e
jne 0x41cbe6
push 0x14
call fcn.004386f9
add esp, 4
mov ecx, eax
mov dword [ecx], 0x4776bc
mov dword [ecx + 4], 5
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 edx, dword [eax + 0xc]
test edx, edx
je 0x41cbdb
mov dword [ecx + 0xc], edx
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
jmp 0x41cb2b
cmp eax, 0x5c
jne 0x41cd4c
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41cc2b
cmp byte [eax], 0x5c
jne 0x41cc29
inc eax
cmp eax, ecx
je 0x41cc29
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41cc16
mov dl, byte [eax]
cmp dl, 0x28
je 0x41cc27
cmp dl, 0x29
je 0x41cc27
test cl, 0x10
jne 0x41cc29
mov cl, byte [eax]
cmp cl, 0x7b
je 0x41cc27
cmp cl, 0x7d
jne 0x41cc29
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0041c1a0
test byte [esi + 0x50], 0x80
je 0x41cd40
cmp byte [esi + 0x48], 0x62
jne 0x41ccdc
push 0x14
call fcn.004386f9
mov ecx, eax
add esp, 4
mov dword [ecx + 0x10], 0
mov dword [ecx], 0x4776bc
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 edx, dword [eax + 0xc]
test edx, edx
je 0x41cc93
mov dword [ecx + 0xc], edx
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 ecx, dword [esi + 8]
cmp eax, ecx
je 0x41cfcf
cmp byte [eax], 0x5c
jne 0x41cfcd
inc eax
cmp eax, ecx
je 0x41cfcd
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x41ccd4
mov cl, byte [eax]
cmp cl, 0x28
je 0x41cfcb
cmp cl, 0x29
je 0x41cfcb
test dl, 0x10
jmp 0x41cfbd
cmp byte [esi + 0x48], 0x42
jne 0x41cd40
push 0x14
call fcn.004386f9
mov ecx, eax
add esp, 4
mov dword [ecx + 0x10], 0
mov dword [ecx], 0x4776bc
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 edx, dword [eax + 0xc]
test edx, edx
je 0x41cd2f
mov dword [ecx + 0xc], edx
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 0x41cc99
mov ecx, esi
call fcn.0041d450
jmp 0x41cb6e
cmp eax, 0x5b
jne 0x41cdf4
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41cd91
cmp byte [eax], 0x5c
jne 0x41cd8f
inc eax
cmp eax, ecx
je 0x41cd8f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41cd7c
mov dl, byte [eax]
cmp dl, 0x28
je 0x41cd8d
cmp dl, 0x29
je 0x41cd8d
test cl, 0x10
jne 0x41cd8f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x41cd8d
cmp cl, 0x7d
jne 0x41cd8f
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0041c1a0
lea ecx, [esi + 0x24]
call fcn.0041ebd0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x41cdb9
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.0041ca70
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x41cdd7
cmp eax, 0x5d
jne 0x41cdd7
push eax
lea ecx, [esi + 0x24]
call fcn.0041ec50
mov ecx, esi
call fcn.0041ca70
mov ecx, esi
call fcn.0041e680
cmp dword [esi + 0x4c], 0x5d
jne 0x41d01b
mov ecx, esi
call fcn.0041ca70
jmp 0x41cb6e
cmp eax, 0x28
jne 0x41cf20
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41ce39
cmp byte [eax], 0x5c
jne 0x41ce37
inc eax
cmp eax, ecx
je 0x41ce37
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41ce24
mov dl, byte [eax]
cmp dl, 0x28
je 0x41ce35
cmp dl, 0x29
je 0x41ce35
test cl, 0x10
jne 0x41ce37
mov cl, byte [eax]
cmp cl, 0x7b
je 0x41ce35
cmp cl, 0x7d
jne 0x41ce37
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0041c1a0
inc dword [esi + 0x10]
mov eax, dword [esi + 0x50]
test eax, 0x8000000
jne 0x41ce57
cmp dword [esi + 0x4c], 0x29
je 0x41d014
test al, 0x20
je 0x41cea5
cmp dword [esi + 0x4c], 0x3f
jne 0x41cea5
mov ecx, esi
call fcn.0041ca70
mov edi, dword [esi + 0x4c]
mov ecx, esi
call fcn.0041ca70
cmp edi, 0x3a
je 0x41ceae
cmp edi, 0x21
jne 0x41ce8c
push 1
mov ecx, esi
call fcn.0041eb20
dec dword [esi + 0x10]
xor bl, bl
jmp 0x41cf02
cmp edi, 0x3d
jne 0x41d022
push 0
mov ecx, esi
call fcn.0041eb20
dec dword [esi + 0x10]
xor bl, bl
jmp 0x41cf02
test dword [esi + 0x40], 0x200
je 0x41ceb7
mov ecx, esi
call fcn.0041ea40
jmp 0x41cefd
inc dword [esi + 0xc]
lea ecx, [esi + 0x24]
push dword [esi + 0xc]
call fcn.0041c660
mov ecx, esi
mov ebx, eax
call fcn.0041c340
push ebx
lea ecx, [esi + 0x24]
call fcn.0041c5d0
mov eax, dword [esi + 0xc]
push ecx
inc eax
lea ecx, [esi + 0x14]
push eax
call fcn.0041ddc0
mov edx, dword [ebx + 0x14]
mov eax, edx
mov ecx, dword [esi + 0x14]
and edx, 0x1f
shr eax, 5
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
bts eax, edx
mov dword [ecx], eax
dec dword [esi + 0x10]
mov bl, 1
cmp dword [esi + 0x4c], 0x29
jne 0x41d014
mov ecx, esi
call fcn.0041ca70
test bl, bl
je 0x41cb75
jmp 0x41cb6e
cmp eax, 0x5e
jne 0x41cf37
push 0x14
call fcn.004386f9
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x41cf50
cmp eax, 0x24
jne 0x41cfdb
push 0x14
call fcn.004386f9
mov ecx, eax
mov dword [ecx + 4], 3
mov dword [ecx], 0x4776bc
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 edx, dword [eax + 0xc]
test edx, edx
je 0x41cf8d
mov dword [ecx + 0xc], edx
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 0x41cfcf
cmp byte [eax], 0x5c
jne 0x41cfcd
inc eax
cmp eax, ecx
je 0x41cfcd
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41cfba
mov dl, byte [eax]
cmp dl, 0x28
je 0x41cfcb
cmp dl, 0x29
je 0x41cfcb
test cl, 0x10
jne 0x41cfcd
mov cl, byte [eax]
cmp cl, 0x7b
je 0x41cfcb
cmp cl, 0x7d
jne 0x41cfcd
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0041c1a0
jmp 0x41cb75
cmp eax, 0x2a
je 0x41d006
cmp eax, 0x2b
je 0x41d006
cmp eax, 0x3f
je 0x41d006
cmp eax, 0x7b
je 0x41d006
cmp eax, 0x7d
jne 0x41cb0c
test dword [esi + 0x50], 0x10000000
je 0x41d00d
jmp 0x41cb1e
push 0xa
call fcn.0041c190
push 6
call fcn.0041c190
push 5
call fcn.0041c190
push 4
call fcn.0041c190
push 0xe
call fcn.0041c190
int3