Function at 0x4118b0
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x411ce4
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x411ce2
cmp eax, 0x29
jne 0x4118f0
cmp dword [esi + 0x10], 0
jne 0x411ce2
test dword [esi + 0x50], 0x10000000
je 0x411cf1
jmp 0x411c7b
cmp eax, 0x2e
jne 0x411946
push 5
lea ecx, [esi + 0x24]
call fcn.00413ef0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x411cc3
cmp byte [eax], 0x5c
jne 0x41193e
lea ecx, [eax + 1]
cmp ecx, edx
je 0x41193e
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x41192b
mov dl, byte [ecx]
cmp dl, 0x28
je 0x41193c
cmp dl, 0x29
je 0x41193c
test bl, 0x10
jne 0x41193e
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x41193c
cmp dl, 0x7d
jne 0x41193e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x411cc3
cmp eax, 0x5c
jne 0x411a64
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x41198d
cmp byte [eax], 0x5c
jne 0x41198a
lea ecx, [eax + 1]
cmp ecx, edx
je 0x41198a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x411977
mov dl, byte [ecx]
cmp dl, 0x28
je 0x411988
cmp dl, 0x29
je 0x411988
test bl, 0x10
jne 0x41198a
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x411988
cmp dl, 0x7d
jne 0x41198a
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414460
test byte [esi + 0x50], 0x80
je 0x411a58
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x4119f9
push 4
lea ecx, [esi + 0x24]
call fcn.00413ef0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4119ed
cmp byte [eax], 0x5c
jne 0x4119ea
lea ecx, [eax + 1]
cmp ecx, edx
je 0x4119ea
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4119d7
mov dl, byte [ecx]
cmp dl, 0x28
je 0x4119e8
cmp dl, 0x29
je 0x4119e8
test bl, 0x10
jne 0x4119ea
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x4119e8
cmp dl, 0x7d
jne 0x4119ea
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414460
jmp 0x411cd4
cmp al, 0x42
jne 0x411a58
push 4
lea ecx, [esi + 0x24]
call fcn.00413ef0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x411a4c
cmp byte [eax], 0x5c
jne 0x411a49
lea ecx, [eax + 1]
cmp ecx, edx
je 0x411a49
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x411a36
mov al, byte [ecx]
cmp al, 0x28
je 0x411a47
cmp al, 0x29
je 0x411a47
mov eax, dword [esi]
test dl, 0x10
jne 0x411a49
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x411a47
cmp dl, 0x7d
jne 0x411a49
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414460
jmp 0x411cd4
mov ecx, esi
call fcn.00411d10
jmp 0x411cca
cmp eax, 0x5b
jne 0x411b0e
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x411aab
cmp byte [eax], 0x5c
jne 0x411aa8
lea ecx, [eax + 1]
cmp ecx, edx
je 0x411aa8
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x411a95
mov al, byte [ecx]
cmp al, 0x28
je 0x411aa6
cmp al, 0x29
je 0x411aa6
mov eax, dword [esi]
test dl, 0x10
jne 0x411aa8
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x411aa6
cmp dl, 0x7d
jne 0x411aa8
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414460
lea ecx, [esi + 0x24]
call fcn.00410ee0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x411ad3
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00413f70
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x411af1
cmp eax, 0x5d
jne 0x411af1
push eax
lea ecx, [esi + 0x24]
call fcn.00410e70
mov ecx, esi
call fcn.00413f70
mov ecx, esi
call fcn.00412570
cmp dword [esi + 0x4c], 0x5d
jne 0x411d03
mov ecx, esi
call fcn.00413f70
jmp 0x411cca
cmp eax, 0x28
jne 0x411b7f
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x411b51
cmp byte [eax], 0x5c
jne 0x411b4e
lea ecx, [eax + 1]
cmp ecx, edx
je 0x411b4e
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x411b3b
mov al, byte [ecx]
cmp al, 0x28
je 0x411b4c
cmp al, 0x29
je 0x411b4c
mov eax, dword [esi]
test dl, 0x10
jne 0x411b4e
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x411b4c
cmp dl, 0x7d
jne 0x411b4e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414460
mov ecx, esi
call fcn.004146a0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x411cf1
mov ecx, esi
call fcn.00413f70
test bl, bl
je 0x411cd4
jmp 0x411cca
cmp eax, 0x5e
jne 0x411bd8
push 2
lea ecx, [esi + 0x24]
call fcn.00413ef0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x411bcc
cmp byte [eax], 0x5c
jne 0x411bc9
lea ecx, [eax + 1]
cmp ecx, edx
je 0x411bc9
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x411bb6
mov al, byte [ecx]
cmp al, 0x28
je 0x411bc7
cmp al, 0x29
je 0x411bc7
mov eax, dword [esi]
test dl, 0x10
jne 0x411bc9
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x411bc7
cmp dl, 0x7d
jne 0x411bc9
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414460
jmp 0x411cd4
cmp eax, 0x24
jne 0x411c31
push 3
lea ecx, [esi + 0x24]
call fcn.00413ef0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x411c25
cmp byte [eax], 0x5c
jne 0x411c22
lea ecx, [eax + 1]
cmp ecx, edx
je 0x411c22
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x411c0f
mov al, byte [ecx]
cmp al, 0x28
je 0x411c20
cmp al, 0x29
je 0x411c20
mov eax, dword [esi]
test dl, 0x10
jne 0x411c22
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x411c20
cmp dl, 0x7d
jne 0x411c22
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00414460
jmp 0x411cd4
cmp eax, 0x2a
je 0x411ce8
cmp eax, 0x2b
je 0x411ce8
cmp eax, 0x3f
je 0x411ce8
cmp eax, 0x7b
je 0x411ce8
cmp eax, 0x7d
jne 0x411c69
test dword [esi + 0x50], 0x10000000
je 0x411cfa
jmp 0x411c7b
cmp eax, 0x5d
jne 0x411c7b
test dword [esi + 0x50], 0x10000000
je 0x411d03
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00410cb0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x411cc3
cmp byte [eax], 0x5c
jne 0x411cc1
inc eax
cmp eax, ecx
je 0x411cc1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x411cae
mov dl, byte [eax]
cmp dl, 0x28
je 0x411cbf
cmp dl, 0x29
je 0x411cbf
test cl, 0x10
jne 0x411cc1
mov cl, byte [eax]
cmp cl, 0x7b
je 0x411cbf
cmp cl, 0x7d
jne 0x411cc1
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00414460
mov ecx, esi
call fcn.00413fd0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x4118c6
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.004134d0
push 5
mov ecx, esi
call fcn.004134d0
push 6
mov ecx, esi
call fcn.004134d0
push 4
mov ecx, esi
call fcn.004134d0
int3