Function at 0x416090
Capabilities:
Parse credit card information

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov esi, edx
test edx, edx
je 0x416518
mov edi, eax
call fcn.00414400
mov al, byte [esi]
mov dword [esp + 0x14], esi
and eax, 0xffffffdf
lea ebx, [esi + 1]
sub eax, 0x41
cmp al, 0x19
jbe 0x416141
mov eax, edi
call fcn.00414400
mov al, byte [esi]
mov dword [esp + 0x18], esi
cmp al, 0x2f
je 0x4163f9
mov dl, al
and edx, 0xffffffdf
sub edx, 0x41
cmp dl, 0x19
jbe 0x4160ed
lea edx, [eax - 0x30]
cmp dl, 9
ja 0x4162bb
lea ebp, [esp + 0x1c]
xor ecx, ecx
mov edx, 0x3a
mov eax, ebp
mov dword [esp + 0x1c], esi
call fcn.004141b0
mov ebx, eax
test eax, eax
jne 0x41612f
mov esi, dword [esp + 0x1c]
cmp byte [esi], 0x2f
jne 0x416420
inc esi
xor edx, edx
mov ecx, 1
mov eax, ebp
mov dword [esp + 0x1c], esi
call fcn.004141b0
mov ebx, eax
test eax, eax
je 0x416109
mov eax, edi
call fcn.00414400
add esp, 0x2c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
inc ebx
mov cl, byte [ebx]
mov al, cl
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
jbe 0x416140
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x416140
cmp cl, 0x2b
je 0x416140
cmp cl, 0x2d
je 0x416140
cmp cl, 0x2e
je 0x416140
test edi, edi
je 0x416194
mov eax, dword [edi]
test eax, eax
je 0x416370
mov dword [esp], eax
call dword [0x6713e0]
mov eax, dword [esp + 0x14]
mov edx, ebx
mov dword [esp], eax
sub edx, eax
mov dword [esp + 4], edx
call fcn.00445280
mov dword [edi], eax
mov cl, byte [ebx]
mov dword [esp + 0x14], ebx
cmp cl, 0x3a
jne 0x4160bf
lea eax, [ebx + 1]
mov dl, byte [ebx + 1]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
cmp dl, 0x2f
je 0x416489
mov cl, dl
and ecx, 0xffffffdf
sub ecx, 0x41
cmp cl, 0x19
jbe 0x4163b5
lea ecx, [edx - 0x30]
cmp cl, 9
jbe 0x4163b5
cmp dl, 0x2d
je 0x4163b5
cmp dl, 0x2e
je 0x4163b5
cmp dl, 0x5f
je 0x4163b5
cmp dl, 0x7e
je 0x4163b5
cmp dl, 0x25
je 0x416377
cmp dl, 0x24
je 0x4163b5
cmp dl, 0x21
je 0x4163b5
cmp dl, 0x26
je 0x4163b5
cmp dl, 0x28
je 0x4163b5
cmp dl, 0x29
je 0x4163b5
cmp dl, 0x2a
je 0x4163b5
cmp dl, 0x2b
je 0x4163b5
cmp dl, 0x2c
je 0x4163b5
cmp dl, 0x3b
je 0x4163b5
cmp dl, 0x3d
je 0x4163b5
cmp dl, 0x3a
je 0x4163b5
cmp dl, 0x40
je 0x4163b5
test edi, edi
je 0x41628d
mov edx, dword [edi + 0x18]
test edx, edx
je 0x416286
mov dword [esp], edx
call dword [0x6713e0]
mov eax, dword [esp + 0x18]
mov dword [edi + 0x18], 0
mov dword [esp + 0x14], eax
mov dl, byte [eax]
cmp dl, 0x3f
je 0x4165a2
cmp dl, 0x23
je 0x416610
xor ebx, ebx
test dl, dl
je 0x416136
mov eax, edi
call fcn.00414400
jmp 0x4160bf
cmp al, 0x2d
je 0x4160ed
cmp al, 0x2e
je 0x4160ed
cmp al, 0x5f
je 0x4160ed
cmp al, 0x7e
je 0x4160ed
cmp al, 0x25
je 0x4165c5
cmp al, 0x24
je 0x4160ed
cmp al, 0x21
je 0x4160ed
cmp al, 0x26
je 0x4160ed
cmp al, 0x28
je 0x4160ed
cmp al, 0x29
je 0x4160ed
cmp al, 0x2a
je 0x4160ed
cmp al, 0x2b
je 0x4160ed
cmp al, 0x2c
je 0x4160ed
cmp al, 0x3b
je 0x4160ed
cmp al, 0x3d
je 0x4160ed
cmp al, 0x3a
je 0x4160ed
cmp al, 0x40
je 0x4160ed
test edi, edi
je 0x416469
mov eax, dword [edi + 0x18]
test eax, eax
je 0x41635f
mov dword [esp], eax
call dword [0x6713e0]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x18], 0
mov al, byte [esi]
jmp 0x416469
mov eax, esi
jmp 0x416180
mov dl, byte [ebx + 2]
lea ecx, [edx - 0x61]
cmp cl, 5
jbe 0x416396
lea ecx, [edx - 0x30]
cmp cl, 9
jbe 0x416396
sub edx, 0x41
cmp dl, 5
ja 0x41626e
mov dl, byte [ebx + 3]
lea ecx, [edx - 0x61]
cmp cl, 5
jbe 0x4163b5
lea ecx, [edx - 0x30]
cmp cl, 9
jbe 0x4163b5
sub edx, 0x41
cmp dl, 5
ja 0x41626e
lea ebp, [esp + 0x1c]
mov dword [esp + 0x1c], eax
xor ecx, ecx
xor edx, edx
mov eax, ebp
call fcn.004141b0
test eax, eax
jne 0x4160bf
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0x2f
jne 0x416556
inc eax
xor edx, edx
mov dword [esp + 0x1c], eax
mov ecx, 1
mov eax, ebp
call fcn.004141b0
test eax, eax
je 0x4163d0
jmp 0x4160bf
cmp byte [esi + 1], 0x2f
je 0x416520
lea edx, [esp + 0x18]
mov eax, edi
call fcn.00415c60
mov ebx, eax
test eax, eax
jne 0x41612f
mov esi, dword [esp + 0x18]
mov al, byte [esi]
jmp 0x416469
test edi, edi
je 0x416463
mov eax, dword [edi + 0x18]
test eax, eax
je 0x416438
mov dword [esp], eax
call dword [0x6713e0]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
cmp eax, esi
je 0x416692
test byte [edi + 0x24], 2
je 0x4164f6
sub esi, eax
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.00445280
mov esi, dword [esp + 0x1c]
mov dword [edi + 0x18], eax
mov dword [esp + 0x18], esi
mov al, byte [esi]
cmp al, 0x3f
je 0x4164d1
cmp al, 0x23
je 0x4164af
xor ebx, ebx
test al, al
je 0x416136
mov eax, edi
mov bl, 1
call fcn.00414400
jmp 0x41612f
cmp byte [ebx + 2], 0x2f
je 0x416633
lea edx, [esp + 0x18]
mov eax, edi
call fcn.00415c60
test eax, eax
jne 0x4160bf
mov eax, dword [esp + 0x18]
jmp 0x41628d
inc esi
lea edx, [esp + 0x18]
mov eax, edi
mov dword [esp + 0x18], esi
call fcn.00415ef0
mov ebx, eax
test eax, eax
jne 0x41612f
mov eax, dword [esp + 0x18]
mov al, byte [eax]
jmp 0x416471
inc esi
lea edx, [esp + 0x18]
mov eax, edi
mov dword [esp + 0x18], esi
call fcn.00415d30
mov ebx, eax
test eax, eax
jne 0x41612f
mov esi, dword [esp + 0x18]
mov al, byte [esi]
jmp 0x41646d
sub esi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004155e0
mov esi, dword [esp + 0x1c]
mov dword [edi + 0x18], eax
jmp 0x416463
or ebx, 0xffffffff
jmp 0x416136
add esi, 2
lea edx, [esp + 0x18]
mov eax, edi
mov dword [esp + 0x18], esi
call fcn.004157e0
mov ebx, eax
test eax, eax
jne 0x41612f
lea edx, [esp + 0x18]
mov eax, edi
call fcn.00415bb0
mov ebx, eax
test eax, eax
je 0x416418
jmp 0x41612f
test edi, edi
je 0x41628d
mov edx, dword [edi + 0x18]
test edx, edx
je 0x416572
mov dword [esp], edx
call dword [0x6713e0]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp edx, eax
je 0x416286
test byte [edi + 0x24], 2
je 0x416670
sub eax, edx
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00445280
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x1c]
jmp 0x41628d
inc eax
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, edi
call fcn.00415d30
test eax, eax
jne 0x4160bf
mov eax, dword [esp + 0x14]
mov dl, byte [eax]
jmp 0x41629c
mov dl, byte [esi + 1]
lea ecx, [edx - 0x61]
cmp cl, 5
jbe 0x4165e4
lea ecx, [edx - 0x30]
cmp cl, 9
jbe 0x4165e4
sub edx, 0x41
cmp dl, 5
ja 0x416343
mov dl, byte [esi + 2]
lea ecx, [edx - 0x61]
cmp cl, 5
jbe 0x4160ed
lea ecx, [edx - 0x30]
cmp cl, 9
jbe 0x4160ed
sub edx, 0x41
cmp dl, 5
jbe 0x4160ed
jmp 0x416343
inc eax
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, edi
call fcn.00415ef0
test eax, eax
jne 0x4160bf
mov eax, dword [esp + 0x14]
mov dl, byte [eax]
jmp 0x4162a5
add ebx, 3
lea edx, [esp + 0x18]
mov eax, edi
mov dword [esp + 0x18], ebx
call fcn.004157e0
test eax, eax
jne 0x4160bf
lea edx, [esp + 0x18]
mov eax, edi
call fcn.00415bb0
test eax, eax
jne 0x4160bf
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
jmp 0x416291
sub eax, edx
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.004155e0
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x1c]
jmp 0x41628d
mov dword [edi + 0x18], 0
jmp 0x416463