Function at 0x403700
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
mov dword [ebp - 0x1c], 0
cmp dword [ebp + 0xc], 0
jbe 0x404022
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx]
test edx, edx
je 0x403ff9
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0x7f
jge 0x403ff9
mov edx, dword [ebp - 4]
movsx eax, byte [edx]
cmp eax, 0x20
jle 0x403ff9
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx]
cmp edx, 0x25
jne 0x403a21
cmp dword [ebp + 0xc], 0x4f
jbe 0x403a21
mov dword [ebp - 8], 0
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
movsx eax, byte [edx]
test eax, eax
jne 0x4037b6
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
movsx eax, byte [edx]
cmp eax, 0x42
je 0x4037a4
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx]
cmp edx, 0x62
jne 0x4037b6
mov dword [ebp - 0x10], 1
mov eax, dword [ebp - 4]
add eax, 2
mov dword [ebp - 4], eax
jmp 0x4037f5
mov ecx, dword [ebp - 0x14]
movsx edx, byte [ecx]
cmp edx, 0x42
je 0x4037cc
mov eax, dword [ebp - 0x14]
movsx ecx, byte [eax]
cmp ecx, 0x62
jne 0x4037de
mov dword [ebp - 0x10], 0
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
jmp 0x4037f5
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0xc]
sub ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x403710
mov edx, dword [ebp - 8]
add edx, 2
mov dword [ebp - 8], edx
mov dword [ebp - 0x18], 1
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.00404a00
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x403a21
push 0x14
push 0
lea eax, [ebp - 0x30]
push eax
call fcn.004017c0
add esp, 0xc
cmp dword [ebp - 0x10], 1
jne 0x40385a
push 0
push 0
push 0x14
lea ecx, [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 4]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
jmp 0x40386e
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp - 4]
push edx
lea eax, [ebp - 0x30]
push eax
call fcn.00401800
add esp, 0xc
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0xc]
push edx
lea eax, [ebp - 0x30]
push eax
call fcn.004048e0
add esp, 8
cmp eax, 1
jne 0x403a21
cmp dword [ebp - 0x10], 0
jne 0x4038a1
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 4], ecx
jmp 0x4038ad
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
lea ecx, [eax + edx*2]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
movsx eax, byte [edx]
cmp eax, 0x5e
jne 0x403a21
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.00404ae0
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x403a21
cmp dword [ebp - 0x10], 0
jne 0x4038ea
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0xc]
mov dword [ebp - 4], eax
jmp 0x4038f6
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
lea eax, [edx + ecx*2]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 8], ecx
mov edx, 0x4f
sub edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.00404b50
add esp, 0x10
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x403a21
cmp dword [ebp - 0x10], 0
jne 0x40393a
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0xc]
mov dword [ebp - 4], eax
jmp 0x403946
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
lea eax, [edx + ecx*2]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x14]
sub edx, 1
mov dword [ebp - 0x14], edx
push 0x4f
push 0
lea eax, [ebp - 0xa8]
push eax
call fcn.004017c0
add esp, 0xc
cmp dword [ebp - 0x10], 0
jne 0x40398a
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x14]
push edx
lea eax, [ebp - 0xa8]
push eax
call fcn.00401800
add esp, 0xc
jmp 0x4039a9
push 0
push 0
push 0x4f
lea ecx, [ebp - 0xa8]
push ecx
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x14]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea ecx, [ebp - 0xa8]
push ecx
mov edx, dword [0x4083c0]
push edx
call dword [sym.imp.SHLWAPI.dll_StrStrA]
test eax, eax
jne 0x403a21
mov eax, dword [ebp - 8]
push eax
lea ecx, [ebp - 0xa8]
push ecx
call fcn.00404750
add esp, 8
mov edx, dword [ebp - 8]
push edx
lea eax, [ebp - 0xa8]
push eax
call fcn.004046e0
add esp, 8
cmp dword [ebp - 0x10], 0
jne 0x403a01
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 8]
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 0xc]
sub edx, dword [ebp - 8]
mov dword [ebp + 0xc], edx
jmp 0x403a1a
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax*2]
mov dword [ebp + 8], edx
mov eax, dword [ebp - 8]
shl eax, 1
mov ecx, dword [ebp + 0xc]
sub ecx, eax
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 4]
movsx eax, byte [edx]
cmp eax, 0x3b
jne 0x403cb9
cmp dword [ebp + 0xc], 0x28
jbe 0x403cb9
mov dword [ebp - 8], 0
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
test ecx, ecx
jne 0x403a80
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
push ecx
call fcn.004049d0
add esp, 4
cmp eax, 1
jne 0x403a80
mov dword [ebp - 0x10], 1
jmp 0x403ab4
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx]
push eax
call fcn.004049d0
add esp, 4
cmp eax, 1
jne 0x403a9d
mov dword [ebp - 0x10], 0
jmp 0x403ab4
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 0xc]
sub edx, 1
mov dword [ebp + 0xc], edx
jmp 0x403710
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], 1
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.00404a00
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x403cb9
push 0x14
push 0
lea ecx, [ebp - 0x30]
push ecx
call fcn.004017c0
add esp, 0xc
cmp dword [ebp - 0x10], 1
jne 0x403b19
push 0
push 0
push 0x14
lea edx, [ebp - 0x30]
push edx
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 4]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
jmp 0x403b2d
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 4]
push eax
lea ecx, [ebp - 0x30]
push ecx
call fcn.00401800
add esp, 0xc
mov edx, dword [ebp - 8]
add edx, dword [ebp - 0xc]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
push eax
lea ecx, [ebp - 0x30]
push ecx
call fcn.004048e0
add esp, 8
cmp eax, 1
jne 0x403cb9
cmp dword [ebp - 0x10], 0
jne 0x403b60
mov edx, dword [ebp - 4]
add edx, dword [ebp - 0xc]
mov dword [ebp - 4], edx
jmp 0x403b6c
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
lea edx, [ecx + eax*2]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0x3d
je 0x403b86
mov edx, dword [ebp - 4]
movsx eax, byte [edx]
cmp eax, 0x44
jne 0x403cb9
cmp dword [ebp - 0x10], 0
jne 0x403b97
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
jmp 0x403ba0
mov edx, dword [ebp - 4]
add edx, 2
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, 0x28
sub ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.00404b50
add esp, 0x10
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x403cb9
cmp dword [ebp - 0x10], 0
jne 0x403be4
mov edx, dword [ebp - 4]
add edx, dword [ebp - 0xc]
mov dword [ebp - 4], edx
jmp 0x403bf0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
lea edx, [ecx + eax*2]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x14], ecx
push 0x28
push 0
lea edx, [ebp - 0x58]
push edx
call fcn.004017c0
add esp, 0xc
cmp dword [ebp - 0x10], 0
jne 0x403c2e
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
lea edx, [ebp - 0x58]
push edx
call fcn.00401800
add esp, 0xc
jmp 0x403c4a
push 0
push 0
push 0x28
lea eax, [ebp - 0x58]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x14]
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea eax, [ebp - 0x58]
push eax
mov ecx, dword [0x4083c0]
push ecx
call dword [sym.imp.SHLWAPI.dll_StrStrA]
test eax, eax
jne 0x403cb9
mov edx, dword [ebp - 8]
push edx
lea eax, [ebp - 0x58]
push eax
call fcn.00404750
add esp, 8
mov ecx, dword [ebp - 8]
push ecx
lea edx, [ebp - 0x58]
push edx
call fcn.004046e0
add esp, 8
cmp dword [ebp - 0x10], 0
jne 0x403c99
mov eax, dword [ebp + 8]
add eax, dword [ebp - 8]
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0xc]
sub ecx, dword [ebp - 8]
mov dword [ebp + 0xc], ecx
jmp 0x403cb2
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 8]
lea ecx, [eax + edx*2]
mov dword [ebp + 8], ecx
mov edx, dword [ebp - 8]
shl edx, 1
mov eax, dword [ebp + 0xc]
sub eax, edx
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx]
cmp edx, 0x2b
je 0x403cde
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0x21
je 0x403cde
mov edx, dword [ebp - 4]
movsx eax, byte [edx]
cmp eax, 0x23
jne 0x403ff9
cmp dword [ebp + 0xc], 0x6b
jbe 0x403ff9
mov dword [ebp - 8], 0
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
test ecx, ecx
jne 0x403d2e
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
push ecx
call fcn.004049d0
add esp, 4
cmp eax, 1
jne 0x403d2e
mov dword [ebp - 0x10], 1
jmp 0x403d62
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx]
push eax
call fcn.004049d0
add esp, 4
cmp eax, 1
jne 0x403d4b
mov dword [ebp - 0x10], 0
jmp 0x403d62
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 0xc]
sub edx, 1
mov dword [ebp + 0xc], edx
jmp 0x403710
cmp dword [ebp - 0x10], 1
jne 0x403da6
mov eax, dword [ebp - 4]
add eax, 2
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
push edx
call fcn.004049d0
add esp, 4
test eax, eax
jne 0x403d9b
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0xc]
sub ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x403710
mov edx, dword [ebp - 4]
add edx, 2
mov dword [ebp - 4], edx
jmp 0x403de2
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
push edx
call fcn.004049d0
add esp, 4
test eax, eax
jne 0x403dd9
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0xc]
sub ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x403710
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
add eax, 3
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], 1
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.00404a00
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x403ff9
push 0x14
push 0
lea ecx, [ebp - 0x30]
push ecx
call fcn.004017c0
add esp, 0xc
cmp dword [ebp - 0x10], 1
jne 0x403e47
push 0
push 0
push 0x14
lea edx, [ebp - 0x30]
push edx
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 4]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
jmp 0x403e5b
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 4]
push eax
lea ecx, [ebp - 0x30]
push ecx
call fcn.00401800
add esp, 0xc
mov edx, dword [ebp - 8]
add edx, dword [ebp - 0xc]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
push eax
lea ecx, [ebp - 0x30]
push ecx
call fcn.004048e0
add esp, 8
cmp eax, 1
jne 0x403ff9
cmp dword [ebp - 0x10], 0
jne 0x403e8e
mov edx, dword [ebp - 4]
add edx, dword [ebp - 0xc]
mov dword [ebp - 4], edx
jmp 0x403e9a
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
lea edx, [ecx + eax*2]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0x3d
je 0x403eb4
mov edx, dword [ebp - 4]
movsx eax, byte [edx]
cmp eax, 0x44
jne 0x403ff9
cmp dword [ebp - 0x10], 0
jne 0x403ec5
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
jmp 0x403ece
mov edx, dword [ebp - 4]
add edx, 2
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, 0x28
sub ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.00404b50
add esp, 0x10
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x403ff9
cmp dword [ebp - 0x10], 0
jne 0x403f12
mov edx, dword [ebp - 4]
add edx, dword [ebp - 0xc]
mov dword [ebp - 4], edx
jmp 0x403f1e
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
lea edx, [ecx + eax*2]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x14], ecx
push 0x6b
push 0
lea edx, [ebp - 0x114]
push edx
call fcn.004017c0
add esp, 0xc
cmp dword [ebp - 0x10], 0
jne 0x403f62
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
lea edx, [ebp - 0x114]
push edx
call fcn.00401800
add esp, 0xc
jmp 0x403f81
push 0
push 0
push 0x6b
lea eax, [ebp - 0x114]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x14]
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea eax, [ebp - 0x114]
push eax
mov ecx, dword [0x4083c0]
push ecx
call dword [sym.imp.SHLWAPI.dll_StrStrA]
test eax, eax
jne 0x403ff9
mov edx, dword [ebp - 8]
push edx
lea eax, [ebp - 0x114]
push eax
call fcn.00404750
add esp, 8
mov ecx, dword [ebp - 8]
push ecx
lea edx, [ebp - 0x114]
push edx
call fcn.004046e0
add esp, 8
cmp dword [ebp - 0x10], 0
jne 0x403fd9
mov eax, dword [ebp + 8]
add eax, dword [ebp - 8]
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0xc]
sub ecx, dword [ebp - 8]
mov dword [ebp + 0xc], ecx
jmp 0x403ff2
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 8]
lea ecx, [eax + edx*2]
mov dword [ebp + 8], ecx
mov edx, dword [ebp - 8]
shl edx, 1
mov eax, dword [ebp + 0xc]
sub eax, edx
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x1c], 1
cmp dword [ebp - 0x1c], 1
jne 0x40400b
mov dword [ebp - 0x1c], 0
jmp 0x40371a
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 0xc]
sub edx, 1
mov dword [ebp + 0xc], edx
jmp 0x403710
mov esp, ebp
pop ebp
ret