Function at 0x461364
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov eax, dword [ebp + 8]
and dword [esp + 0x10], 0
push ebx
push esi
mov ebx, dword [eax]
push edi
mov edi, edx
mov dword [esp + 0x30], ecx
mov ecx, edi
mov dword [esp + 0x14], ebx
call fcn.00455372
mov esi, eax
test bl, 0x40
jne 0x4b1774
cmp dword [0x53a04c], 0
jne 0x4b1774
lea eax, [esi + 2]
cdq
push edx
push eax
call fcn.00453031
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
je 0x461403
test esi, esi
je 0x4613c5
push esi
push edi
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
and dword [esp + 0x14], 0xffffffbf
mov word [ebx + esi], 0
mov esi, dword [esp + 0x30]
push esi
call fcn.004615fb
pop ecx
mov ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [eax], ecx
test ecx, ecx
je 0x4b1b02
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x14]
mov dword [ecx], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [ecx], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 7
pop eax
jmp 0x4613fc
cmp esi, 5
jl 0x4613a3
push 5
push 0x40ed2c
push edi
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4613a3
and dword [esp + 0x10], eax
lea eax, [esi + 2]
or dword [esp + 0x14], 0x40
xor ecx, ecx
cdq
mov ebx, eax
mov dword [esp + 0x20], edx
xor eax, eax
cmp byte [ecx + edi], 0x26
jne 0x4b17b3
inc eax
xor edx, edx
add ebx, eax
mov eax, dword [esp + 0x20]
adc eax, edx
inc ecx
mov dword [esp + 0x20], eax
cmp ecx, esi
jl 0x4b17aa
push eax
push ebx
call fcn.00453031
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
je 0x461403
cmp byte [edi + 5], 0x2f
push 5
pop esi
jne 0x4b1869
cmp byte [edi + 6], 0x2f
jne 0x4b1869
lea ecx, [edi + 7]
mov al, byte [ecx]
mov dword [esp + 0x2c], ecx
push 7
pop esi
test al, al
je 0x4b1869
cmp al, 0x2f
je 0x4b1808
inc esi
mov al, byte [esi + edi]
test al, al
jne 0x4b17fc
cmp esi, 7
je 0x4b1869
cmp esi, 0x10
jne 0x4b182a
push 9
push ecx
push 0x40ed58
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4b1869
mov ecx, dword [esp + 0x2c]
push ecx
lea eax, [esi - 7]
push eax
push 0x40ed64
jmp 0x4b1840
push edi
push dword [esp + 0x24]
push 0x40edb8
mov dword [esp + 0x28], 1
jmp 0x4b185c
push edi
push dword [esp + 0x24]
mov dword [esp + 0x24], 3
push 0x40ed88
call fcn.00460be7
add esp, 0xc
jmp 0x4b1b17
mov cl, byte [esi + edi]
xor edx, edx
mov dword [esp + 0x18], edx
test cl, cl
jne 0x4b187f
mov eax, dword [esp + 0x10]
jmp 0x4b19be
cmp cl, 0x23
je 0x4b19b0
inc esi
cmp cl, 0x25
jne 0x4b192f
movzx eax, byte [esi + edi]
test byte [eax + 0x410470], 8
je 0x4b192f
movzx eax, byte [esi + edi + 1]
test byte [eax + 0x410470], 8
je 0x4b192f
mov dl, byte [esi + edi]
mov cl, byte [esi + edi + 1]
mov al, dl
sar al, 6
add esi, 2
and al, 1
movzx eax, al
imul eax, eax, 7
sub dl, al
mov al, cl
sar al, 6
and edx, 0xf
and al, 1
shl edx, 4
movzx eax, al
imul eax, eax, 7
sub cl, al
and ecx, 0xf
add ecx, edx
mov edx, dword [esp + 0x18]
je 0x4b1926
jmp 0x4b1999
cmp al, 0x23
je 0x4b19a5
test edx, edx
jne 0x4b1903
cmp al, 0x3f
je 0x4b19a5
cmp edx, 1
jne 0x4b1918
cmp al, 0x3d
je 0x4b19a5
cmp al, 0x26
je 0x4b19a5
cmp edx, 2
jne 0x4b1925
cmp al, 0x26
je 0x4b19a5
inc esi
mov al, byte [esi + edi]
test al, al
jne 0x4b18ef
jmp 0x4b19a5
cmp edx, 1
jne 0x4b197d
cmp cl, 0x26
je 0x4b193e
cmp cl, 0x3d
jne 0x4b1999
mov eax, dword [esp + 0x10]
cmp byte [ebx + eax - 1], 0
je 0x4b1969
cmp cl, 0x26
jne 0x4b1972
mov ecx, eax
mov byte [ebx + ecx], 0
inc ecx
mov dword [esp + 0x10], ecx
mov eax, ecx
jmp 0x4b1979
cmp al, 0x23
je 0x4b19a5
cmp byte [esi + edi - 1], 0x26
je 0x4b19a5
inc esi
mov al, byte [esi + edi]
test al, al
jne 0x4b195d
jmp 0x4b19a5
push 2
pop edx
mov dword [esp + 0x18], edx
xor cl, cl
jmp 0x4b199d
test edx, edx
jne 0x4b1986
cmp cl, 0x3f
je 0x4b1990
cmp edx, 2
jne 0x4b1999
cmp cl, 0x26
jne 0x4b1999
xor edx, edx
xor cl, cl
inc edx
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x10]
mov byte [ebx + eax], cl
inc eax
mov dword [esp + 0x10], eax
mov cl, byte [esi + edi]
test cl, cl
jne 0x4b187f
mov eax, dword [esp + 0x10]
cmp edx, 1
jne 0x4b19be
mov byte [ebx + eax], 0
inc eax
mov ecx, ebx
mov word [ebx + eax], 0
call fcn.00455372
lea esi, [ebx + 1]
add esi, eax
jmp 0x4b1a14
mov ecx, esi
call fcn.00455372
mov dword [esp + 0x28], eax
lea edi, [eax + 1]
add edi, esi
mov ecx, edi
call fcn.00455372
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
cmp eax, 3
jne 0x4b1a1e
push eax
push esi
push 0x40ed4c
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4b1a0d
mov dword [esp + 0x30], edi
mov esi, dword [esp + 0x2c]
inc esi
add esi, edi
cmp byte [esi], 0
jne 0x4b19d2
jmp 0x4613d0
cmp eax, 5
jne 0x4b1a4e
push eax
push esi
push 0x40ed50
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4b1a0d
mov ecx, 0x60000
mov dword [esp + 0x20], 0x40ed50
mov eax, 0x53fd60
mov dword [esp + 0x28], ecx
jmp 0x4b1a82
cmp eax, 4
jne 0x4b1a0d
push eax
push esi
push 0x40ed80
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4b1a0d
mov edx, dword [esp + 0x14]
mov ecx, 0x87
and edx, ecx
mov dword [esp + 0x20], 0x40edb0
mov eax, 0x53fd38
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], eax
mov esi, ecx
mov eax, dword [eax]
xor ecx, ecx
jmp 0x4b1af1
mov ecx, eax
call fcn.00455372
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
jne 0x4b1ae5
push ecx
push dword [esp + 0x28]
push edi
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4b1ae5
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov ecx, dword [eax + ecx*8 + 4]
test ecx, ecx
je 0x4b1836
mov eax, ecx
and eax, 0xffffff7f
cmp eax, dword [esp + 0x28]
jg 0x4b184a
not esi
and esi, dword [esp + 0x14]
or esi, ecx
mov dword [esp + 0x14], esi
jmp 0x4b1a0d
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
inc ecx
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ecx
test eax, eax
jne 0x4b1a8e
jmp 0x4b1836
push esi
push 0x40eda0
mov dword [esp + 0x24], 1
call fcn.00460be7
pop ecx
pop ecx
mov ecx, dword [ebp + 0x14]
push ebx
mov dword [ecx], eax
call fcn.0045984d
pop ecx
xor ebx, ebx
jmp 0x4613ea