Function at 0x2e013a5f
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor edi, edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x50], edi
cmp ebx, edi
je 0x2e014398
mov esi, dword [ebp + 0xc]
cmp esi, edi
je 0x2e014398
push 0x44
push edi
push esi
call sub.MSVCR90.dll_memset
push ebx
call fcn.2e00239f
add esp, 0x10
cmp eax, edi
jne 0x2e013ae2
push 0x44
push edi
push esi
call sub.MSVCR90.dll_memset
add esp, 0xc
mov dword [esi], 5
mov dword [esi + 0x2c], ebx
xor eax, eax
jmp 0x2e01439b
add eax, ebx
push 0x23
push ebx
mov dword [ebp - 0x14], eax
call fcn.2e01492f
mov esi, eax
pop ecx
pop ecx
cmp esi, edi
je 0x2e013b07
push esi
mov dword [ebp - 0x5c], esi
call fcn.2e00239f
pop ecx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x14], esi
mov edi, ebx
mov esi, ebx
cmp ebx, dword [ebp - 0x14]
jae 0x2e013b39
mov al, byte [esi]
cmp al, 0x3a
je 0x2e013b75
movzx eax, al
push eax
call dword [sym.imp.MSVCR90.dll_isalnum]
pop ecx
test eax, eax
jne 0x2e013b33
mov al, byte [esi]
cmp al, 0x2b
je 0x2e013b33
cmp al, 0x2e
je 0x2e013b33
cmp al, 0x2d
jne 0x2e013b39
inc esi
cmp esi, dword [ebp - 0x14]
jb 0x2e013b10
mov dword [ebp + 8], 5
push 0x2f
pop eax
cmp byte [edi], al
jne 0x2e014115
cmp byte [edi + 1], al
jne 0x2e014115
inc edi
push eax
inc edi
push edi
call fcn.2e01492f
xor ebx, ebx
pop ecx
pop ecx
cmp eax, ebx
je 0x2e013ff7
mov esi, eax
sub esi, edi
mov dword [ebp - 0x10], eax
jmp 0x2e014000
mov eax, esi
sub eax, ebx
lea edi, [esi + 1]
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], edi
je 0x2e013b39
push 5
inc eax
pop ecx
cmp eax, ecx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x3c], eax
jl 0x2e013b98
mov dword [ebp - 0x3c], ecx
and dword [ebp - 0x38], 0
cmp dword [ebp - 0x3c], 0
mov edi, dword [sym.imp.MSVCR90.dll_isupper]
jle 0x2e013c11
mov dword [ebp - 0x30], str.http:
sub dword [ebp - 0x30], ebx
mov edx, ebx
mov ecx, dword [ebp - 0x30]
mov al, byte [edx]
mov cl, byte [ecx + edx]
cmp al, cl
je 0x2e013bfd
movzx esi, al
push esi
mov byte [ebp - 2], al
mov byte [ebp - 1], cl
call edi
pop ecx
test eax, eax
je 0x2e013bdc
push esi
call dword [sym.imp.MSVCR90.dll_tolower]
pop ecx
mov byte [ebp - 2], al
movzx esi, byte [ebp - 1]
push esi
call edi
pop ecx
test eax, eax
je 0x2e013bf2
push esi
call dword [sym.imp.MSVCR90.dll_tolower]
pop ecx
jmp 0x2e013bf5
mov al, byte [ebp - 1]
cmp byte [ebp - 2], al
jne 0x2e013c34
mov edx, dword [ebp - 0x34]
cmp byte [edx], 0x3a
je 0x2e013c25
inc edx
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x3c]
mov dword [ebp - 0x34], edx
jl 0x2e013bb4
mov eax, dword [ebp - 0xc]
xor ecx, ecx
inc eax
cmp eax, 5
sete cl
movzx eax, cx
test ax, ax
je 0x2e013c34
mov dword [ebp + 8], 1
mov edi, dword [ebp - 0x18]
jmp 0x2e013b40
mov eax, dword [ebp - 0xc]
push 6
inc eax
pop ecx
cmp eax, ecx
mov dword [ebp - 0x34], eax
jl 0x2e013c45
mov dword [ebp - 0x34], ecx
and dword [ebp - 0x38], 0
cmp dword [ebp - 0x34], 0
jle 0x2e013cb0
mov dword [ebp - 0x3c], str.https:
sub dword [ebp - 0x3c], ebx
mov ecx, dword [ebp - 0x3c]
mov al, byte [ebx]
mov cl, byte [ecx + ebx]
cmp al, cl
je 0x2e013c9f
movzx esi, al
push esi
mov byte [ebp - 1], al
mov byte [ebp - 2], cl
call edi
pop ecx
test eax, eax
je 0x2e013c81
push esi
call dword [sym.imp.MSVCR90.dll_tolower]
pop ecx
mov byte [ebp - 1], al
movzx esi, byte [ebp - 2]
push esi
call edi
pop ecx
test eax, eax
je 0x2e013c97
push esi
call dword [sym.imp.MSVCR90.dll_tolower]
pop ecx
jmp 0x2e013c9a
mov al, byte [ebp - 2]
cmp byte [ebp - 1], al
jne 0x2e013cd0
cmp byte [ebx], 0x3a
je 0x2e013cc4
inc ebx
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x34]
jl 0x2e013c59
mov eax, dword [ebp - 0xc]
xor ecx, ecx
inc eax
cmp eax, 6
sete cl
movzx eax, cx
test ax, ax
je 0x2e013cd0
mov dword [ebp + 8], 2
jmp 0x2e013c2c
mov eax, dword [ebp - 0xc]
mov ebx, dword [ebp + 8]
push 5
inc eax
pop ecx
cmp eax, ecx
mov dword [ebp - 0x34], eax
jl 0x2e013ce4
mov dword [ebp - 0x34], ecx
and dword [ebp - 0x38], 0
cmp dword [ebp - 0x34], 0
jle 0x2e013d53
mov dword [ebp - 0x3c], 0x2e02b7e8
sub dword [ebp - 0x3c], ebx
mov ecx, dword [ebp - 0x3c]
mov al, byte [ebx]
mov cl, byte [ecx + ebx]
cmp al, cl
je 0x2e013d42
movzx esi, al
push esi
mov byte [ebp - 1], al
mov byte [ebp - 2], cl
call edi
pop ecx
test eax, eax
je 0x2e013d20
push esi
call dword [sym.imp.MSVCR90.dll_tolower]
pop ecx
mov byte [ebp - 1], al
movzx esi, byte [ebp - 2]
push esi
call edi
pop ecx
test eax, eax
je 0x2e013d36
push esi
call dword [sym.imp.MSVCR90.dll_tolower]
pop ecx
jmp 0x2e013d39
mov al, byte [ebp - 2]
cmp byte [ebp - 1], al
jne 0x2e013dd6
cmp byte [ebx], 0x3a
je 0x2e013d67
inc ebx
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x34]
jl 0x2e013cf8
mov eax, dword [ebp - 0xc]
xor ecx, ecx
inc eax
cmp eax, 5
sete cl
movzx eax, cx
test ax, ax
je 0x2e013dd6
mov ecx, dword [ebp - 0x18]
push 0x2f
pop eax
mov dword [ebp + 8], 4
mov dword [ebp - 0x10], ecx
cmp byte [ecx], al
jne 0x2e013fdf
cmp byte [ecx + 1], al
jne 0x2e013fdf
mov edx, ecx
cmp byte [edx + 2], al
jne 0x2e013da3
lea ecx, [edx + 3]
cmp byte [ecx], al
jne 0x2e013da3
cmp byte [edx + 4], al
jne 0x2e013da3
cmp byte [edx + 5], al
je 0x2e013da3
mov dword [ebp - 0x10], ecx
mov esi, dword [ebp - 0x10]
push eax
add esi, 2
push esi
call fcn.2e01492f
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x2e013fdc
cmp edi, esi
je 0x2e013fdc
cmp byte [edi - 1], 0x7c
jne 0x2e013fbc
inc dword [ebp - 0x10]
jmp 0x2e013fdf
mov eax, dword [ebp - 0xc]
mov ebx, dword [ebp + 8]
push 4
inc eax
pop ecx
cmp eax, ecx
mov dword [ebp - 0x34], eax
jl 0x2e013dea
mov dword [ebp - 0x34], ecx
and dword [ebp - 0x38], 0
cmp dword [ebp - 0x34], 0
jle 0x2e013e55
mov dword [ebp - 0x3c], str.ftp:
sub dword [ebp - 0x3c], ebx
mov ecx, dword [ebp - 0x3c]
mov al, byte [ebx]
mov cl, byte [ecx + ebx]
cmp al, cl
je 0x2e013e44
movzx esi, al
push esi
mov byte [ebp - 1], al
mov byte [ebp - 2], cl
call edi
pop ecx
test eax, eax
je 0x2e013e26
push esi
call dword [sym.imp.MSVCR90.dll_tolower]
pop ecx
mov byte [ebp - 1], al
movzx esi, byte [ebp - 2]
push esi
call edi
pop ecx
test eax, eax
je 0x2e013e3c
push esi
call dword [sym.imp.MSVCR90.dll_tolower]
pop ecx
jmp 0x2e013e3f
mov al, byte [ebp - 2]
cmp byte [ebp - 1], al
jne 0x2e013e75
cmp byte [ebx], 0x3a
je 0x2e013e69
inc ebx
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x34]
jl 0x2e013dfe
mov eax, dword [ebp - 0xc]
xor ecx, ecx
inc eax
cmp eax, 4
sete cl
movzx eax, cx
test ax, ax
je 0x2e013e75
mov dword [ebp + 8], 3
jmp 0x2e013c2c
mov eax, dword [ebp - 0xc]
mov ebx, dword [ebp + 8]
push 4
inc eax
pop ecx
cmp eax, ecx
mov dword [ebp - 0x34], eax
jl 0x2e013e89
mov dword [ebp - 0x34], ecx
and dword [ebp - 0x38], 0
cmp dword [ebp - 0x34], 0
jle 0x2e013ef4
mov dword [ebp - 0x3c], str.smb:
sub dword [ebp - 0x3c], ebx
mov ecx, dword [ebp - 0x3c]
mov al, byte [ebx]
mov cl, byte [ecx + ebx]
cmp al, cl
je 0x2e013ee3
movzx esi, al
push esi
mov byte [ebp - 1], al
mov byte [ebp - 2], cl
call edi
pop ecx
test eax, eax
je 0x2e013ec5
push esi
call dword [sym.imp.MSVCR90.dll_tolower]
pop ecx
mov byte [ebp - 1], al
movzx esi, byte [ebp - 2]
push esi
call edi
pop ecx
test eax, eax
je 0x2e013edb
push esi
call dword [sym.imp.MSVCR90.dll_tolower]
pop ecx
jmp 0x2e013ede
mov al, byte [ebp - 2]
cmp byte [ebp - 1], al
jne 0x2e013f14
cmp byte [ebx], 0x3a
je 0x2e013f08
inc ebx
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x34]
jl 0x2e013e9d
mov eax, dword [ebp - 0xc]
xor ecx, ecx
inc eax
cmp eax, 4
sete cl
movzx eax, cx
test ax, ax
je 0x2e013f14
mov dword [ebp + 8], 6
jmp 0x2e013c2c
mov eax, dword [ebp - 0xc]
mov ebx, dword [ebp + 8]
push 0xb
inc eax
pop ecx
cmp eax, ecx
mov dword [ebp - 0x34], eax
jl 0x2e013f28
mov dword [ebp - 0x34], ecx
and dword [ebp - 0x38], 0
cmp dword [ebp - 0x34], 0
jle 0x2e013f93
mov dword [ebp - 0x3c], str.javascript:
sub dword [ebp - 0x3c], ebx
mov ecx, dword [ebp - 0x3c]
mov al, byte [ebx]
mov cl, byte [ecx + ebx]
cmp al, cl
je 0x2e013f82
movzx esi, al
push esi
mov byte [ebp - 2], al
mov byte [ebp + 0xb], cl
call edi
pop ecx
test eax, eax
je 0x2e013f64
push esi
call dword [sym.imp.MSVCR90.dll_tolower]
pop ecx
mov byte [ebp - 2], al
movzx esi, byte [ebp + 0xb]
push esi
call edi
pop ecx
test eax, eax
je 0x2e013f7a
push esi
call dword [sym.imp.MSVCR90.dll_tolower]
pop ecx
jmp 0x2e013f7d
mov al, byte [ebp + 0xb]
cmp byte [ebp - 2], al
jne 0x2e013fb3
cmp byte [ebx], 0x3a
je 0x2e013fa7
inc ebx
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x34]
jl 0x2e013f3c
mov eax, dword [ebp - 0xc]
xor ecx, ecx
inc eax
cmp eax, 0xb
sete cl
movzx eax, cx
test ax, ax
je 0x2e013fb3
mov dword [ebp + 8], 7
jmp 0x2e013c2c
and dword [ebp + 8], 0
jmp 0x2e013c2c
push 1
push 0
push 9
push 0x2e03c508
push 9
push esi
call fcn.2e01348c
add esp, 0x18
test ax, ax
je 0x2e013fdf
mov dword [ebp - 0x10], edi
jmp 0x2e013fdf
mov dword [ebp - 0x10], esi
push dword [ebp - 0x10]
call fcn.2e00239f
pop ecx
test eax, eax
jne 0x2e014136
push 0xfffffffffffffffb
jmp 0x2e01439a
push edi
call fcn.2e00239f
pop ecx
mov esi, eax
cmp edi, ebx
je 0x2e014105
cmp esi, ebx
jle 0x2e014105
push 0x40
push edi
call fcn.2e01492f
pop ecx
pop ecx
cmp eax, ebx
je 0x2e014032
mov ecx, eax
sub ecx, edi
cmp ecx, esi
jge 0x2e014032
sub esi, ecx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x1c], ecx
lea edi, [eax + 1]
dec esi
mov dword [ebp - 8], esi
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x40], edi
cmp esi, ebx
je 0x2e014071
cmp dword [ebp - 0x1c], ebx
jle 0x2e014071
push 0x3a
push esi
call fcn.2e01492f
pop ecx
pop ecx
cmp eax, ebx
je 0x2e014071
mov ecx, eax
sub ecx, esi
cmp ecx, dword [ebp - 0x1c]
jge 0x2e014071
mov ecx, dword [ebp - 0x1c]
inc eax
sub ecx, eax
mov dword [ebp - 0x48], eax
add ecx, esi
or eax, 0xffffffff
sub eax, ecx
add dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], ecx
cmp edi, ebx
je 0x2e014105
cmp dword [ebp - 8], ebx
je 0x2e014105
mov al, byte [edi]
cmp al, 0x5b
jne 0x2e01409f
push 0x5d
push edi
call fcn.2e01492f
pop ecx
pop ecx
cmp eax, ebx
je 0x2e013ff0
push 0x3a
push eax
jmp 0x2e0140db
cmp al, 0x25
jne 0x2e0140d8
cmp byte [edi + 1], 0x35
jne 0x2e0140d8
movsx eax, byte [edi + 2]
push eax
call dword [sym.imp.MSVCR90.dll_toupper]
pop ecx
cmp eax, 0x42
jne 0x2e0140d8
push 0x2e02a530
push edi
call fcn.2e0149af
pop ecx
pop ecx
cmp eax, ebx
jne 0x2e01409a
push 0x2e02a52c
push edi
call fcn.2e0149af
jmp 0x2e014090
push 0x3a
push edi
call fcn.2e01492f
pop ecx
pop ecx
cmp eax, ebx
je 0x2e014105
mov ecx, eax
sub ecx, edi
cmp ecx, dword [ebp - 8]
jge 0x2e014105
mov ecx, dword [ebp - 8]
inc eax
sub ecx, eax
mov dword [ebp - 0x2c], eax
add ecx, edi
or eax, 0xffffffff
sub eax, ecx
add dword [ebp - 8], eax
mov dword [ebp - 0x4c], ecx
cmp dword [ebp + 8], ebx
je 0x2e014136
cmp dword [ebp - 8], 0
jg 0x2e014136
jmp 0x2e013ff0
xor eax, eax
cmp dword [ebp + 8], eax
je 0x2e014133
push 5
pop ecx
cmp dword [ebp + 8], ecx
je 0x2e014133
cmp dword [ebp + 8], 7
je 0x2e014133
mov dword [ebp + 8], ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x10], edi
mov esi, dword [ebp - 0x10]
test esi, esi
je 0x2e01418b
push 0x3c
push esi
call fcn.2e01492f
pop ecx
pop ecx
test eax, eax
jne 0x2e013ff0
push 0x3e
push esi
call fcn.2e01492f
pop ecx
pop ecx
test eax, eax
jne 0x2e013ff0
push 0x3f
push esi
call fcn.2e01492f
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
test eax, eax
je 0x2e014181
mov ecx, dword [ebp - 0x14]
cmp eax, ecx
jae 0x2e014181
sub ecx, eax
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
sub ecx, esi
mov dword [ebp - 0x20], ecx
jmp 0x2e01418e
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
test edx, edx
jl 0x2e013ff0
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x2e0141ab
add edx, eax
cmp edx, dword [ebp - 0x14]
ja 0x2e013ff0
mov edx, dword [ebp - 0x28]
test edx, edx
jl 0x2e013ff0
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x2e0141c8
add edx, eax
cmp edx, dword [ebp - 0x14]
ja 0x2e013ff0
mov edx, dword [ebp - 8]
test edx, edx
jl 0x2e013ff0
mov edi, dword [ebp - 0x40]
test edi, edi
je 0x2e0141e6
lea eax, [edx + edi]
cmp eax, dword [ebp - 0x14]
ja 0x2e013ff0
test ecx, ecx
jl 0x2e013ff0
test esi, esi
je 0x2e0141fe
lea eax, [ecx + esi]
cmp eax, dword [ebp - 0x14]
ja 0x2e013ff0
test edx, edx
jle 0x2e014297
test edi, edi
je 0x2e014297
mov al, byte [edi]
cmp al, 0x5b
jne 0x2e01422e
cmp byte [edx + edi - 1], 0x5d
jne 0x2e013ff0
mov ebx, dword [ebp + 0xc]
inc edi
dec edx
dec edx
mov dword [ebx + 0x40], 1
jmp 0x2e01429a
cmp al, 0x25
jne 0x2e01428e
cmp byte [edi + 1], 0x35
jne 0x2e01428e
movsx eax, byte [edi + 2]
mov esi, dword [sym.imp.MSVCR90.dll_toupper]
push eax
call esi
pop ecx
cmp eax, 0x42
jne 0x2e01428e
mov eax, dword [ebp - 8]
add eax, edi
cmp byte [eax - 3], 0x25
jne 0x2e013ff0
cmp byte [eax - 2], 0x35
jne 0x2e013ff0
movsx eax, byte [eax - 1]
push eax
call esi
pop ecx
cmp eax, 0x44
jne 0x2e013ff0
mov ebx, dword [ebp + 0xc]
add edi, 3
sub dword [ebp - 8], 6
mov dword [ebx + 0x40], 1
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
jmp 0x2e01429a
mov ebx, dword [ebp + 0xc]
and dword [ebx + 0x40], 0
jmp 0x2e014286
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp + 8]
mov dword [ebx], esi
mov dword [ebx + 4], eax
test eax, eax
jle 0x2e0142ae
mov eax, dword [ebp - 0x44]
jmp 0x2e0142b0
xor eax, eax
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 0xc], eax
test eax, eax
jle 0x2e0142c2
mov eax, dword [ebp - 0x24]
jmp 0x2e0142c4
xor eax, eax
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x14], eax
test eax, eax
jle 0x2e0142d6
mov eax, dword [ebp - 0x48]
jmp 0x2e0142d8
xor eax, eax
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], edx
test edx, edx
jle 0x2e0142e6
mov eax, edi
jmp 0x2e0142e8
xor eax, eax
xor edx, edx
cmp ecx, edx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x28], ecx
jle 0x2e0142f9
mov eax, dword [ebp - 0x10]
jmp 0x2e0142fb
xor eax, eax
mov dword [ebx + 0x2c], eax
mov eax, dword [ebp - 0x50]
cmp eax, edx
mov dword [ebx + 0x30], eax
jle 0x2e01430d
mov eax, dword [ebp - 0x54]
jmp 0x2e01430f
xor eax, eax
mov dword [ebx + 0x34], eax
mov eax, dword [ebp - 0x58]
cmp eax, edx
mov dword [ebx + 0x38], eax
jle 0x2e014321
mov eax, dword [ebp - 0x5c]
jmp 0x2e014323
xor eax, eax
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x24], edx
cmp dword [ebp - 0x2c], edx
je 0x2e014376
cmp dword [ebp - 0x4c], edx
jle 0x2e014376
mov esi, dword [ebp - 0x2c]
mov edi, dword [sym.imp.MSVCR90.dll_isdigit]
jmp 0x2e01435a
mov eax, dword [ebx + 0x24]
movsx ecx, byte [esi]
imul eax, eax, 0xa
lea eax, [eax + ecx - 0x30]
cmp eax, 0xffff
mov dword [ebx + 0x24], eax
jg 0x2e013ff0
inc esi
movzx eax, byte [esi]
push eax
call edi
pop ecx
test eax, eax
jne 0x2e01433e
sub esi, dword [ebp - 0x2c]
cmp esi, dword [ebp - 0x4c]
je 0x2e013adb
jmp 0x2e013ff0
and dword [ebp + 8], 0
lea edx, [ebp + 8]
mov ecx, esi
call fcn.2e0135b0
test ax, ax
je 0x2e013adb
mov eax, dword [ebp + 8]
mov dword [ebx + 0x24], eax
jmp 0x2e013adb
push 0xfffffffffffffffe
pop eax
pop edi
pop esi
pop ebx
leave
ret