Function at 0x411540
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x411974
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x411972
cmp eax, 0x29
jne 0x411580
cmp dword [esi + 0x10], 0
jne 0x411972
test dword [esi + 0x50], 0x10000000
je 0x411981
jmp 0x41190b
cmp eax, 0x2e
jne 0x4115d6
push 5
lea ecx, [esi + 0x24]
call fcn.004144f0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x411953
cmp byte [eax], 0x5c
jne 0x4115ce
lea ecx, [eax + 1]
cmp ecx, edx
je 0x4115ce
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4115bb
mov dl, byte [ecx]
cmp dl, 0x28
je 0x4115cc
cmp dl, 0x29
je 0x4115cc
test bl, 0x10
jne 0x4115ce
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x4115cc
cmp dl, 0x7d
jne 0x4115ce
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x411953
cmp eax, 0x5c
jne 0x4116f4
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x41161d
cmp byte [eax], 0x5c
jne 0x41161a
lea ecx, [eax + 1]
cmp ecx, edx
je 0x41161a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x411607
mov dl, byte [ecx]
cmp dl, 0x28
je 0x411618
cmp dl, 0x29
je 0x411618
test bl, 0x10
jne 0x41161a
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x411618
cmp dl, 0x7d
jne 0x41161a
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414970
test byte [esi + 0x50], 0x80
je 0x4116e8
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x411689
push 4
lea ecx, [esi + 0x24]
call fcn.004144f0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x41167d
cmp byte [eax], 0x5c
jne 0x41167a
lea ecx, [eax + 1]
cmp ecx, edx
je 0x41167a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x411667
mov dl, byte [ecx]
cmp dl, 0x28
je 0x411678
cmp dl, 0x29
je 0x411678
test bl, 0x10
jne 0x41167a
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x411678
cmp dl, 0x7d
jne 0x41167a
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414970
jmp 0x411964
cmp al, 0x42
jne 0x4116e8
push 4
lea ecx, [esi + 0x24]
call fcn.004144f0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4116dc
cmp byte [eax], 0x5c
jne 0x4116d9
lea ecx, [eax + 1]
cmp ecx, edx
je 0x4116d9
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x4116c6
mov al, byte [ecx]
cmp al, 0x28
je 0x4116d7
cmp al, 0x29
je 0x4116d7
mov eax, dword [esi]
test dl, 0x10
jne 0x4116d9
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x4116d7
cmp dl, 0x7d
jne 0x4116d9
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414970
jmp 0x411964
mov ecx, esi
call fcn.004119c0
jmp 0x41195a
cmp eax, 0x5b
jne 0x41179e
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x41173b
cmp byte [eax], 0x5c
jne 0x411738
lea ecx, [eax + 1]
cmp ecx, edx
je 0x411738
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x411725
mov al, byte [ecx]
cmp al, 0x28
je 0x411736
cmp al, 0x29
je 0x411736
mov eax, dword [esi]
test dl, 0x10
jne 0x411738
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x411736
cmp dl, 0x7d
jne 0x411738
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414970
lea ecx, [esi + 0x24]
call fcn.00410bc0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x411763
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00414570
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x411781
cmp eax, 0x5d
jne 0x411781
push eax
lea ecx, [esi + 0x24]
call fcn.00410b50
mov ecx, esi
call fcn.00414570
mov ecx, esi
call fcn.004122f0
cmp dword [esi + 0x4c], 0x5d
jne 0x411993
mov ecx, esi
call fcn.00414570
jmp 0x41195a
cmp eax, 0x28
jne 0x41180f
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4117e1
cmp byte [eax], 0x5c
jne 0x4117de
lea ecx, [eax + 1]
cmp ecx, edx
je 0x4117de
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x4117cb
mov al, byte [ecx]
cmp al, 0x28
je 0x4117dc
cmp al, 0x29
je 0x4117dc
mov eax, dword [esi]
test dl, 0x10
jne 0x4117de
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x4117dc
cmp dl, 0x7d
jne 0x4117de
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414970
mov ecx, esi
call fcn.00414bb0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x411981
mov ecx, esi
call fcn.00414570
test bl, bl
je 0x411964
jmp 0x41195a
cmp eax, 0x5e
jne 0x411868
push 2
lea ecx, [esi + 0x24]
call fcn.004144f0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x41185c
cmp byte [eax], 0x5c
jne 0x411859
lea ecx, [eax + 1]
cmp ecx, edx
je 0x411859
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x411846
mov al, byte [ecx]
cmp al, 0x28
je 0x411857
cmp al, 0x29
je 0x411857
mov eax, dword [esi]
test dl, 0x10
jne 0x411859
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x411857
cmp dl, 0x7d
jne 0x411859
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414970
jmp 0x411964
cmp eax, 0x24
jne 0x4118c1
push 3
lea ecx, [esi + 0x24]
call fcn.004144f0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4118b5
cmp byte [eax], 0x5c
jne 0x4118b2
lea ecx, [eax + 1]
cmp ecx, edx
je 0x4118b2
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x41189f
mov al, byte [ecx]
cmp al, 0x28
je 0x4118b0
cmp al, 0x29
je 0x4118b0
mov eax, dword [esi]
test dl, 0x10
jne 0x4118b2
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x4118b0
cmp dl, 0x7d
jne 0x4118b2
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414970
jmp 0x411964
cmp eax, 0x2a
je 0x411978
cmp eax, 0x2b
je 0x411978
cmp eax, 0x3f
je 0x411978
cmp eax, 0x7b
je 0x411978
cmp eax, 0x7d
jne 0x4118f9
test dword [esi + 0x50], 0x10000000
je 0x41198a
jmp 0x41190b
cmp eax, 0x5d
jne 0x41190b
test dword [esi + 0x50], 0x10000000
je 0x411993
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00410990
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x411953
cmp byte [eax], 0x5c
jne 0x411951
inc eax
cmp eax, ecx
je 0x411951
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41193e
mov dl, byte [eax]
cmp dl, 0x28
je 0x41194f
cmp dl, 0x29
je 0x41194f
test cl, 0x10
jne 0x411951
mov cl, byte [eax]
cmp cl, 0x7b
je 0x41194f
cmp cl, 0x7d
jne 0x411951
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00414970
mov ecx, esi
call fcn.004145d0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x411556
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.004133e0
push 5
mov ecx, esi
call fcn.004133e0
push 6
mov ecx, esi
call fcn.004133e0
push 4
mov ecx, esi
call fcn.004133e0
int3