Function at 0x4136a0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x413b85
lea edi, [esi + 8]
nop word [eax + eax]
cmp eax, 0x7c
je 0x413b85
cmp eax, 0x29
jne 0x4136ea
cmp dword [esi + 0x10], 0
jne 0x413b85
test dword [esi + 0x50], 0x10000000
je 0x413b95
jmp 0x413b1f
cmp eax, 0x2e
jne 0x413759
push 5
lea ecx, [esi + 0x24]
call fcn.00413620
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x413b66
cmp byte [eax], 0x5c
jne 0x41395b
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x41374f
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x41372f
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x413744
cmp cl, 0x29
je 0x413744
mov ecx, eax
test bl, 0x10
jne 0x41374f
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x413744
mov edx, ecx
cmp bl, 0x7d
jne 0x41374f
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x413b66
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x413b66
cmp eax, 0x5c
jne 0x4138a8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4137ae
cmp byte [eax], 0x5c
jne 0x4137ab
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x4137a9
test byte [esi + 0x50], 8
jne 0x41378e
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x4137a4
cmp cl, 0x29
je 0x4137a4
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x4137a9
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x4137a4
mov edx, ecx
cmp bl, 0x7d
jne 0x4137a9
lea eax, [edx + 1]
jmp 0x4137ab
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004117f0
test byte [esi + 0x50], 0x80
je 0x41389c
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x413835
push 4
lea ecx, [esi + 0x24]
call fcn.00413620
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x413829
cmp byte [eax], 0x5c
jne 0x413826
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x413824
test byte [esi + 0x50], 8
jne 0x4137fc
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x413812
cmp cl, 0x29
je 0x413812
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x413824
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x413812
mov edx, ecx
cmp bl, 0x7d
jne 0x413824
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.004117f0
jmp 0x413b77
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004117f0
jmp 0x413b77
cmp al, 0x42
jne 0x41389c
push 4
lea ecx, [esi + 0x24]
call fcn.00413620
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x413890
cmp byte [eax], 0x5c
jne 0x41388d
lea ebx, [eax + 1]
cmp ebx, ecx
je 0x41388d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x413877
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x28
je 0x41388a
cmp dl, 0x29
je 0x41388a
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x41388d
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x7b
je 0x41388a
cmp dl, 0x7d
jne 0x41388d
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004117f0
jmp 0x413b77
mov ecx, esi
call fcn.00415830
jmp 0x413b6d
cmp eax, 0x5b
jne 0x413963
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4138f9
cmp byte [eax], 0x5c
jne 0x4138f6
lea edx, [eax + 1]
cmp edx, ecx
je 0x4138f6
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4138e0
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x4138f3
cmp byte [ebp - 1], 0x29
je 0x4138f3
test bl, 0x10
jne 0x4138f6
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x4138f3
cmp dl, 0x7d
jne 0x4138f6
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004117f0
mov ecx, esi
call fcn.004156f0
cmp dword [esi + 0x4c], 0x5d
jne 0x413ba3
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x413b66
cmp byte [eax], 0x5c
jne 0x41395b
lea edx, [eax + 1]
cmp edx, ecx
je 0x41395b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x413945
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x413958
cmp byte [ebp - 1], 0x29
je 0x413958
test bl, 0x10
jne 0x41395b
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x413958
cmp dl, 0x7d
jne 0x41395b
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x413b66
cmp eax, 0x28
jne 0x413a27
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4139b2
cmp byte [eax], 0x5c
jne 0x4139af
lea edx, [eax + 1]
cmp edx, ecx
je 0x4139af
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x413999
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x4139ac
cmp bl, 0x29
je 0x4139ac
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x4139af
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x4139ac
cmp dl, 0x7d
jne 0x4139af
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004117f0
mov ecx, esi
call fcn.00415980
cmp dword [esi + 0x4c], 0x29
mov bh, al
jne 0x413b95
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x413a13
cmp byte [eax], 0x5c
jne 0x413a10
lea edx, [eax + 1]
cmp edx, ecx
je 0x413a10
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4139fa
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x413a0d
cmp bl, 0x29
je 0x413a0d
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x413a10
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x413a0d
cmp dl, 0x7d
jne 0x413a10
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004117f0
test bh, bh
je 0x413b77
jmp 0x413b6d
cmp eax, 0x5e
jne 0x413a7e
push 2
lea ecx, [esi + 0x24]
call fcn.00413620
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x413a72
cmp byte [eax], 0x5c
jne 0x413a70
inc eax
cmp eax, ecx
je 0x413a70
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x413a5f
mov dl, byte [eax]
cmp dl, 0x28
je 0x413a6e
cmp dl, 0x29
je 0x413a6e
test cl, 0x10
jne 0x413a70
mov al, byte [eax]
cmp al, 0x7b
je 0x413a6e
cmp al, 0x7d
jne 0x413a70
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.004117f0
jmp 0x413b77
cmp eax, 0x24
jne 0x413ad5
push 3
lea ecx, [esi + 0x24]
call fcn.00413620
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x413ac9
cmp byte [eax], 0x5c
jne 0x413ac7
inc eax
cmp eax, ecx
je 0x413ac7
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x413ab6
mov dl, byte [eax]
cmp dl, 0x28
je 0x413ac5
cmp dl, 0x29
je 0x413ac5
test cl, 0x10
jne 0x413ac7
mov al, byte [eax]
cmp al, 0x7b
je 0x413ac5
cmp al, 0x7d
jne 0x413ac7
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.004117f0
jmp 0x413b77
cmp eax, 0x2a
je 0x413b8e
cmp eax, 0x2b
je 0x413b8e
cmp eax, 0x3f
je 0x413b8e
cmp eax, 0x7b
je 0x413b8e
cmp eax, 0x7d
jne 0x413b0d
test dword [esi + 0x50], 0x10000000
je 0x413b9c
jmp 0x413b1f
cmp eax, 0x5d
jne 0x413b1f
test dword [esi + 0x50], 0x10000000
je 0x413ba3
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00415d30
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x413b66
cmp byte [eax], 0x5c
jne 0x413b64
inc eax
cmp eax, ecx
je 0x413b64
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x413b53
mov dl, byte [eax]
cmp dl, 0x28
je 0x413b62
cmp dl, 0x29
je 0x413b62
test cl, 0x10
jne 0x413b64
mov al, byte [eax]
cmp al, 0x7b
je 0x413b62
cmp al, 0x7d
jne 0x413b64
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.004117f0
mov ecx, esi
call fcn.00415b00
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x4136c0
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.00411280
push 5
call fcn.00411280
push 6
call fcn.00411280
push 4
call fcn.00411280
int3