Function at 0x445720
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 4], ecx
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], 0
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0x28
jne 0x445909
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 1]
cmp edx, 0x3f
jne 0x44577f
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 2]
cmp ecx, 0x7c
jne 0x44577f
mov edx, dword [ebp - 4]
add edx, 3
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], 1
jmp 0x445909
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 1]
cmp ecx, 0x3f
je 0x4457cc
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 1]
cmp eax, 0x2a
je 0x4457cc
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
add edx, 1
mov eax, dword [ebp + 0x1c]
mov dword [eax], edx
cmp dword [ebp + 0x10], 0
jne 0x4457be
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
cmp edx, dword [ebp + 0x14]
jne 0x4457be
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
jmp 0x445c07
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
jmp 0x445909
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 2]
cmp eax, 0x28
jne 0x445825
mov ecx, dword [ebp - 4]
add ecx, 2
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 1]
cmp eax, 0x3f
je 0x445820
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
test edx, edx
je 0x44580d
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x29
je 0x44580d
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
jmp 0x4457ed
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
test ecx, ecx
je 0x445820
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
jmp 0x445909
mov eax, dword [ebp - 4]
add eax, 2
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x50
jne 0x445842
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x3c
jne 0x445865
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 1]
cmp ecx, 0x21
je 0x445865
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 1]
cmp eax, 0x3d
jne 0x445874
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x27
jne 0x445909
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax]
add ecx, 1
mov edx, dword [ebp + 0x1c]
mov dword [edx], ecx
cmp dword [ebp + 0x10], 0
jne 0x44589b
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax]
cmp ecx, dword [ebp + 0x14]
jne 0x44589b
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx]
jmp 0x445c07
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
cmp dword [ebp - 0x18], 0x3c
jne 0x4458ba
mov dword [ebp - 0x18], 0x3e
mov eax, dword [ebp - 4]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, dword [ebp - 0x18]
je 0x4458d6
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
jmp 0x4458c0
cmp dword [ebp + 0x10], 0
je 0x445909
mov ecx, dword [ebp - 4]
sub ecx, dword [ebp - 0x14]
cmp dword [ebp + 0x14], ecx
jne 0x445909
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00449b21
add esp, 0xc
test eax, eax
jne 0x445909
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx]
jmp 0x445c07
jmp 0x445914
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
test edx, edx
je 0x445bfc
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x5c
jne 0x4459a6
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
test ecx, ecx
jne 0x44594a
jmp 0x445bfc
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0x51
jne 0x4459a1
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
test eax, eax
je 0x445975
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x5c
je 0x445975
jmp 0x445955
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
test ecx, ecx
jne 0x445989
jmp 0x445bfc
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x45
jne 0x44599f
jmp 0x4459a1
jmp 0x445955
jmp 0x44590b
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0x5b
jne 0x445b07
mov dword [ebp - 0x1c], 0
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x5c
jne 0x445a14
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 1]
cmp edx, 0x45
jne 0x4459eb
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
jmp 0x445a12
push 3
push 0x488098
mov ecx, dword [ebp - 4]
add ecx, 1
push ecx
call fcn.00449b21
add esp, 0xc
test eax, eax
jne 0x445a10
mov edx, dword [ebp - 4]
add edx, 3
mov dword [ebp - 4], edx
jmp 0x445a12
jmp 0x445a2d
jmp 0x445a2b
cmp dword [ebp - 0x1c], 0
jne 0x445a29
cmp dword [ebp - 0x20], 0x5e
jne 0x445a29
mov dword [ebp - 0x1c], 1
jmp 0x445a2b
jmp 0x445a2d
jmp 0x4459bc
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 1]
cmp ecx, 0x5d
jne 0x445a4f
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x40]
and eax, 0x2000000
jne 0x445a4f
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x5d
je 0x445b02
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
test eax, eax
jne 0x445a79
or eax, 0xffffffff
jmp 0x445c07
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x5c
jne 0x445afd
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
test edx, edx
jne 0x445aa1
jmp 0x445bfc
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x51
jne 0x445af8
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
test ecx, ecx
je 0x445acc
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0x5c
je 0x445acc
jmp 0x445aac
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
test edx, edx
jne 0x445ae0
jmp 0x445bfc
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x45
jne 0x445af6
jmp 0x445af8
jmp 0x445aac
jmp 0x445a4f
jmp 0x445a4f
jmp 0x44590b
cmp dword [ebp + 0x18], 0
je 0x445b51
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x23
jne 0x445b51
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
test ecx, ecx
je 0x445b38
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0xa
je 0x445b38
jmp 0x445b18
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
test edx, edx
jne 0x445b4c
jmp 0x445bfc
jmp 0x44590b
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x28
jne 0x445b9a
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 4]
push ecx
call fcn.00445720
add esp, 0x18
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jle 0x445b8a
mov eax, dword [ebp - 0x24]
jmp 0x445c07
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
test eax, eax
jne 0x445b98
jmp 0x445bfc
jmp 0x445bf7
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x29
jne 0x445bcc
cmp dword [ebp - 0xc], 0
je 0x445bbd
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax]
cmp ecx, dword [ebp - 8]
jge 0x445bbd
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp - 8]
mov dword [edx], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
mov dword [ecx], edx
or eax, 0xffffffff
jmp 0x445c07
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x7c
jne 0x445bf7
cmp dword [ebp - 0xc], 0
je 0x445bf7
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx]
cmp eax, dword [ebp - 8]
jle 0x445bef
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
mov dword [ebp - 8], edx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x10]
mov dword [eax], ecx
jmp 0x44590b
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov dword [edx], eax
or eax, 0xffffffff
mov esp, ebp
pop ebp
ret