Function at 0x417276
Capabilities:
Parse credit card information

Disassembly:
mov eax, 0x101c
call fcn.00423f20
mov eax, dword [0x451220]
xor eax, esp
mov dword [esp + 0x1018], eax
mov al, byte [esp + 0x1024]
push ebx
push ebp
mov byte [0x755f95], al
xor ebx, ebx
mov al, byte [esp + 0x1030]
mov byte [0x755f94], al
mov byte [0x755f96], bl
push esi
mov esi, dword [esp + 0x102c]
push edi
test al, al
je 0x4172c2
call fcn.00413676
cmp byte [0x99cda0], bl
je 0x4172cf
call fcn.00417003
cmp byte [0x9cfe42], bl
je 0x4172e3
mov byte [esp + 0x1c], bl
cmp byte [0x755f94], bl
je 0x4172e8
mov byte [esp + 0x1c], 1
push dword [esp + 0x1c]
push 0xa
call fcn.0041f33c
push dword [esp + 0x24]
push 0xd
call fcn.0041f33c
push esi
call fcn.004147b2
add esp, 0x14
mov dword [0x95ab1c], ebx
cmp byte [0x755f94], bl
jne 0x417321
mov byte [esp + 0x13], bl
cmp byte [0x9cfe2e], bl
je 0x417326
mov byte [esp + 0x13], 1
mov esi, ebx
mov dword [esp + 0x14], ebx
jmp 0x417341
call fcn.004171f8
cmp dword [0x753f0c], 0
je 0x417353
call fcn.00413313
call fcn.00416b5b
mov ebx, dword [0x754f80]
cmp byte [ebx], 4
je 0x41732e
jmp 0x417362
mov ebx, dword [0x754f80]
cmp byte [ebx], 4
je 0x4179dd
mov eax, dword [esp + 0x14]
xor edx, edx
cmp eax, dword [0x95bc38]
mov ecx, dword [0x755f88]
mov ebp, ecx
cmove esi, edx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], esi
xor esi, esi
push 0x41
mov dl, byte [ebx + ebp - 1]
movzx eax, dl
pop edi
mov eax, dword [eax*4 + 0xeda260]
test eax, eax
je 0x417408
cmp byte [esp + 0x13], 0
je 0x4173bb
cmp dl, 0x2e
jne 0x4173bb
cmp byte [ebx + ebp], dl
jne 0x4173bb
cmp byte [ebx + ebp + 1], dl
jne 0x4173bb
mov edx, dword [esp + 0x14]
cmp edx, dword [0x95bc38]
jne 0x41740c
push eax
call fcn.00415845
pop ecx
test al, al
je 0x4173fc
mov eax, dword [0x755f88]
push 0xb
pop ebx
dec eax
mov edi, ebx
push eax
push ebp
push dword [0x754f80]
lea eax, [esp + 0x34]
push eax
call fcn.0041ebb8
lea eax, [esp + 0x38]
push ebx
push eax
call fcn.004204c1
mov esi, eax
add esp, 0x18
mov dword [esp + 0x1c], esi
jmp 0x4178d7
mov ebx, dword [0x754f80]
mov ecx, dword [0x755f88]
mov edx, dword [esp + 0x14]
cmp byte [esp + 0x13], 0
je 0x417426
cmp byte [ecx + ebx - 1], 0x27
jne 0x417426
cmp edx, dword [0x95bc38]
jne 0x4175cb
movzx eax, byte [ecx + ebx - 1]
mov eax, dword [eax*4 + 0xdd76e0]
mov dword [esp + 0x24], eax
test eax, eax
je 0x4175cb
mov eax, dword [eax*4 + 0xdd44c0]
mov dword [esp + 0x1c], esi
imul ebp, eax, 0x200c
push 0
add ebp, 0xdd7b00
push dword [ebp + 0x2008]
lea eax, [ebp + 8]
push 1
push eax
call fcn.004158f8
add esp, 0x10
test al, al
je 0x4174a7
cmp byte [0x755f94], 0
mov edi, dword [ebp]
je 0x4174ca
cmp edi, 0x1e
jl 0x41748c
mov eax, dword [esp + 0x14]
cmp eax, dword [0x95bc38]
jne 0x417496
mov eax, dword [0x95bc04]
cmp dword [ebp + 4], eax
jne 0x4174ca
mov ebp, dword [esp + 0x18]
mov ecx, ebp
push 0x41
pop edi
mov dword [0x755f88], ecx
jmp 0x4174b1
mov ecx, dword [0x755f88]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [eax*4 + 0xdd44c0]
test eax, eax
jne 0x417449
jmp 0x4175c2
mov eax, dword [0x755f88]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], esi
mov cl, byte [ebx + eax - 1]
mov byte [ebx + eax - 1], 0
mov al, byte [0x9cfe43]
mov byte [esp + 0x23], cl
test al, al
je 0x41750f
lea eax, [ebp - 1]
add eax, ebx
push 0xf
push eax
call fcn.004204c1
mov ebx, dword [0x754f80]
pop ecx
mov dword [esp + 0x20], eax
mov al, byte [0x9cfe43]
pop ecx
mov cl, byte [0x9cfe3d]
test cl, cl
jne 0x417525
cmp byte [0x9cfe3e], cl
jne 0x417525
test al, al
je 0x417561
cmp edi, 0xd
je 0x417561
cmp edi, 0xc
je 0x417561
cmp byte [0x755f94], 0
je 0x417544
mov eax, dword [esp + 0x14]
cmp eax, dword [0x95bc38]
jne 0x417561
lea eax, [ebx - 1]
add eax, ebp
push eax
test cl, cl
je 0x417555
call fcn.0041eb7e
jmp 0x41755a
call fcn.0041eb44
mov ebx, dword [0x754f80]
pop ecx
lea eax, [ebx - 1]
add eax, ebp
push 0xf
push eax
call fcn.004204c1
cmp byte [0x9cfe43], 0
mov esi, eax
mov eax, dword [esp + 0x24]
mov ebx, dword [0x754f80]
cmove eax, esi
cmp byte [esp + 0x1b], 0
pop ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
pop ecx
mov cl, byte [esp + 0x23]
mov byte [ebx + eax - 1], cl
je 0x4175a9
mov eax, dword [esp + 0x14]
cmp eax, dword [0x95bc38]
je 0x4175bc
push esi
call fcn.004146b0
pop ecx
test al, al
je 0x4175bc
push 0x19
pop edi
jmp 0x4178d4
mov ecx, dword [0x755f88]
cmp edi, 0x41
jne 0x4178d4
mov al, byte [ecx + ebx - 1]
push 0xb
pop edi
mov byte [esp + 0x28], al
lea eax, [esp + 0x28]
push edi
push eax
mov byte [esp + 0x31], 0
call fcn.004204c1
mov ebx, dword [0x755f88]
mov esi, eax
mov ebp, dword [0x754f80]
pop ecx
pop ecx
mov dword [esp + 0x1c], esi
cmp byte [ebx + ebp - 1], 0xa
jne 0x417607
inc dword [0x755f90]
mov eax, dword [esp + 0x18]
inc ebx
mov dword [0x755f88], ebx
mov cl, byte [eax + ebp - 1]
cmp cl, 0x22
je 0x417627
cmp cl, 0x27
jne 0x417687
cmp byte [esp + 0x13], 0
jne 0x417687
cmp byte [0x9cfe27], 0
je 0x417687
cmp cl, 0x22
jne 0x417649
imul eax, dword [0x85704c], 0x200c
cmp word [eax + 0xdd7b0a], 0x22
je 0x417662
cmp cl, 0x27
jne 0x417687
imul eax, dword [0x857050], 0x200c
cmp word [eax + 0xdd7b0a], 0x27
jne 0x417687
push 0xa8
push 1
push str.Unmatched_opening_quote_accepted_as_literal_token
push 0x44325c
call fcn.0041f48b
mov ebp, dword [0x754f80]
add esp, 0x10
mov ebx, dword [0x755f88]
push esi
call fcn.004146b0
pop ecx
mov cl, al
push 0x19
test cl, cl
pop eax
cmove eax, edi
cmp byte [esp + 0x13], 0
mov dword [esp + 0x24], eax
mov edi, eax
je 0x4178d0
test cl, cl
je 0x41773e
push 0x19
pop edi
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
cmp byte [0x755f94], 0
mov dword [esp + 0x1c], esi
je 0x417997
mov dword [esp + 0x1c], esi
cmp edx, dword [0x95bc30]
jne 0x4178c7
mov dl, byte [ebx + ebp - 1]
mov al, byte [ecx + ebp - 1]
cmp dl, 0x3d
jne 0x4176f6
cmp al, 0x7e
je 0x417707
cmp al, 0x3c
je 0x417707
cmp al, 0x3e
je 0x417707
cmp dl, 0x2f
jne 0x417840
cmp al, 0x5e
jne 0x417840
inc ebx
mov dword [0x755f88], ebx
lea eax, [ebx - 1]
push eax
push ecx
lea eax, [esp + 0x30]
push ebp
push eax
call fcn.0041ebb8
push 0xb
pop ebx
lea eax, [esp + 0x38]
push ebx
push eax
call fcn.004204c1
mov ebp, dword [esp + 0x30]
mov esi, eax
add esp, 0x18
mov dword [esp + 0x1c], esi
jmp 0x4178d7
cmp esi, dword [0x95bc38]
jne 0x4177e2
cmp byte [ebx + ebp - 1], 0x25
jne 0x4177e2
mov eax, dword [0xeda2f4]
test eax, eax
je 0x4177a7
push eax
call fcn.00415845
pop ecx
test al, al
je 0x4177a7
mov eax, dword [0x755f88]
push 0xb
pop ebp
dec eax
mov edi, ebp
push eax
push ebx
push dword [0x754f80]
lea eax, [esp + 0x34]
push eax
call fcn.0041ebb8
lea eax, [esp + 0x38]
push ebp
push eax
call fcn.004204c1
mov ebp, dword [0x754f80]
add esp, 0x18
mov ebx, dword [0x755f88]
mov esi, eax
jmp 0x4176b4
mov eax, dword [0x95bc38]
push 0xb
push 0x4477c8
mov dword [esp + 0x1c], eax
call fcn.004204c1
mov edi, dword [esp + 0x2c]
mov esi, eax
mov ebp, dword [0x754f80]
pop ecx
pop ecx
mov ecx, dword [0x755f88]
mov dword [esp + 0x18], ecx
lea ebx, [ecx + 1]
mov dword [0x755f88], ebx
jmp 0x4176b8
cmp esi, dword [0x95bc34]
jne 0x4177f1
push 0xf
jmp 0x4176b3
mov edi, eax
cmp esi, dword [0x95bc74]
jne 0x4176b4
mov edx, dword [esp + 0x14]
cmp edx, dword [0x95bc38]
je 0x417837
cmp byte [ebx + ebp - 1], 0x2e
jne 0x417837
cmp byte [ebx + ebp], 0x2e
mov ecx, dword [esp + 0x18]
jne 0x4176bc
mov esi, dword [0x95bbe8]
add ebx, 2
push 0x19
pop edi
mov dword [0x755f88], ebx
jmp 0x4176bc
mov ecx, dword [esp + 0x18]
jmp 0x4176bc
mov dword [esp + 0x1c], esi
cmp al, 0x3f
jne 0x4178d0
call fcn.00416b5b
mov ebx, dword [0x754f80]
mov ecx, dword [0x755f88]
mov dword [esp + 0x1c], esi
lea edx, [ebx - 1]
add edx, ecx
lea ebp, [ecx - 1]
mov byte [ebx + ebp - 1], 0x3f
mov dword [esp + 0x18], ebp
movzx eax, byte [edx]
cmp byte [eax + 0xdd1fe0], 0
je 0x4178d4
cmp byte [eax + 0xdd1ee0], 0
je 0x41789b
inc ecx
inc edx
movzx eax, byte [edx]
cmp byte [eax + 0xdd1ee0], 0
jne 0x417887
mov dword [0x755f88], ecx
lea eax, [ecx - 1]
push eax
push ebp
lea eax, [esp + 0x30]
push ebx
push eax
call fcn.0041ebb8
lea eax, [esp + 0x38]
push 0xf
push eax
call fcn.004204c1
add esp, 0x18
mov esi, eax
mov dword [esp + 0x1c], esi
push 0xf
jmp 0x4175b6
mov ebp, dword [esp + 0x18]
push 0xb
pop ebx
jmp 0x4178db
mov ebp, dword [esp + 0x18]
push 0xb
pop ebx
mov edx, dword [esp + 0x14]
cmp byte [0x755f94], 0
je 0x41799a
cmp edi, 0x19
jne 0x41794f
cmp edx, dword [0x95bc38]
je 0x41795b
cmp esi, dword [0x95bc20]
jne 0x417907
call fcn.00414cf5
jmp 0x417341
cmp esi, dword [0x95bc28]
jne 0x417919
call fcn.00414c3b
jmp 0x417341
cmp esi, dword [0x95bc24]
jne 0x41792b
call fcn.00414a3e
jmp 0x417341
cmp esi, dword [0x95bc1c]
jne 0x41793d
call fcn.00414db4
jmp 0x417341
cmp esi, dword [0x95bc2c]
jne 0x417984
call fcn.00413386
jmp 0x417341
cmp edx, dword [0x95bc38]
jne 0x417972
cmp edi, ebx
jne 0x417972
push esi
call fcn.00413654
pop ecx
test eax, eax
je 0x417972
push eax
push ebp
call fcn.004153ec
pop ecx
pop ecx
push 0x41
pop edi
cmp edi, 0x41
je 0x417341
cmp edi, 0xa
je 0x417341
push dword [esp + 0x1c]
push esi
push edi
call fcn.004144a8
add esp, 0xc
jmp 0x417341
push 0xb
pop ebx
cmp edi, ebx
je 0x4179a3
cmp edi, 0x19
jne 0x4179b2
cmp edx, dword [0x95bc38]
jne 0x4179c0
cmp byte [esp + 0x13], 0
je 0x4179c0
cmp edi, 0x18
jne 0x417972
cmp byte [0x9cfe30], 0
jmp 0x41797e
push esi
call fcn.00413654
pop ecx
test eax, eax
je 0x417972
push eax
mov eax, dword [esp + 0x1c]
push eax
call fcn.004153ec
pop ecx
pop ecx
jmp 0x417341
cmp byte [0x755f94], 0
pop edi
pop esi
pop ebp
pop ebx
je 0x4179f7
mov eax, dword [0x753f00]
inc eax
push eax
call fcn.00416f8e
pop ecx
mov eax, dword [0x95ab1c]
inc eax
imul ecx, eax, 0x14
mov dword [0x95ab1c], eax
mov eax, dword [0x95bc7c]
add ecx, dword [0x95ab24]
mov dword [ecx], eax
mov eax, dword [0x95bc7c]
mov dword [ecx + 4], eax
mov eax, dword [0x755f8c]
mov dword [ecx + 8], 0xa
imul eax, dword [0x9cfe74]
add eax, dword [0x755f90]
mov dword [ecx + 0xc], eax
call fcn.00413616
mov ecx, dword [esp + 0x1018]
xor ecx, esp
call fcn.00423f0c
add esp, 0x101c
ret