Function at 0x759b5165
Capabilities:
Query or enumerate registry value
Validate payment card number using luhn algorithm

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xca8
mov eax, dword [0x75bc8d18]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x28]
mov dword [ebp - 0xca0], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc78], eax
mov eax, dword [ebp + 0x2c]
push ebx
mov ebx, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0x1c]
mov dword [ebp - 0xc88], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0xc94], edx
mov dword [ebp - 0xc90], edi
mov dword [ebp - 0xca8], ecx
mov dword [ebp - 0xca4], eax
test ebx, ebx
je 0x759b51ca
test edx, edx
je 0x759c565a
test edi, edi
je 0x759c565a
test eax, eax
jne 0x759e2e14
movzx eax, word [edi]
push esi
mov dword [ebp - 0xc84], eax
test ax, ax
je 0x759c5662
movzx esi, word [edi + 2]
mov dword [ebp - 0xc9c], esi
cmp word [ebp - 0xc9c], 0
je 0x759c566e
movzx esi, word [edi + 4]
mov dword [ebp - 0xc98], esi
test ecx, ecx
jne 0x759e2e1c
mov esi, 0x400
lea ecx, [ebp - 0xc64]
mov dword [ebp - 0xc6c], esi
mov dword [ebp - 0xc70], ecx
cmp ax, 0x3c
je 0x759e329c
cmp ax, 0x3e
je 0x759e3393
push edi
mov dword [ebp - 0xc78], esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
and dword [ebp - 0xc74], 0
mov dword [ebp - 0xc7c], eax
inc eax
mov dword [ebp - 0xc8c], ebx
cmp eax, esi
ja 0x759e2e24
mov esi, dword [ebp - 0xc7c]
lea edi, [esi + esi]
lea eax, [edi + 2]
push eax
push dword [ebp - 0xc90]
push dword [ebp - 0xc70]
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [ebp - 0xc94], 0
je 0x759c2a79
mov eax, dword [ebp - 0xc94]
mov ecx, dword [eax]
mov dword [ebp - 0xc74], ecx
mov dword [eax], esi
test ebx, ebx
je 0x759c2a81
cmp ecx, esi
jbe 0x759c2a81
lea eax, [edi + 2]
push eax
push dword [ebp - 0xc70]
push ebx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0xc74]
add esp, 0xc
mov dword [ebp - 0xc78], eax
mov eax, dword [ebp - 0xc84]
test ax, ax
je 0x759e2e4b
lea ecx, [eax - 0x30]
cmp cx, 9
jbe 0x759c2b17
cmp dword [ebp - 0xc8c], 0
je 0x759b5309
cmp dword [ebp - 0xc74], esi
jbe 0x759c568e
cmp dword [ebp - 0xc78], 1
jbe 0x759c568e
cmp ax, 0x5c
setne al
dec al
and al, 0x22
add al, 0x3a
test byte [ebp + 0x18], 2
movzx ax, al
mov word [ebx + 2], ax
je 0x759b5367
mov edi, dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 1
call edi
push ebx
mov esi, eax
call fcn.759b5427
mov ebx, dword [ebp - 0xca8]
mov dword [ebp - 0xca4], eax
test ebx, ebx
jne 0x759e3288
push esi
call edi
cmp dword [ebp - 0xca4], 0xffffffff
je 0x759e3295
push 3
pop esi
lea ecx, [ebp - 0xc70]
call fcn.759b4cb9
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.759b1748
leave
ret
push esi
push esi
push esi
push esi
lea eax, [edi + 2]
push eax
push dword [ebp - 0x3c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
jmp 0x759c2c9d
lea eax, [ebx + 2]
movzx ecx, word [eax]
test cx, cx
je 0x759c2bd7
cmp cx, 0x5c
je 0x759c2a75
inc eax
inc eax
jmp 0x759c2a5f
mov edi, eax
jmp 0x759c2a71
test ebx, ebx
jne 0x759b52d8
mov ebx, dword [ebp - 0xc70]
jmp 0x759b52d8
mov eax, dword [ebp - 0xc9c]
add eax, 0xffffffd0
cmp ax, 9
ja 0x759c567a
cmp word [ebp - 0xc98], 0x3a
jne 0x759e2e52
and dword [ebp - 0xc90], 0
cmp word [ebp - 0xc98], 0x2a
je 0x759e3085
mov edi, esi
cmp dword [ebp - 0xc8c], 0
je 0x759c2b64
cmp dword [ebp - 0xc74], edi
jbe 0x759c568e
cmp edi, 5
jb 0x759c567a
movzx eax, word [ebp - 0xc84]
movzx ecx, word [ebp - 0xc9c]
imul eax, eax, 0xa
and dword [ebp - 0xc84], 0
and dword [ebp - 0xc7c], 0
lea esi, [eax + ecx - 0x210]
cmp esi, 0x32
jge 0x759e3174
cmp byte [0x75bcca70], 0
jne 0x759e3194
test byte [ebp + 0x18], 2
je 0x759c2ccb
mov ecx, dword [ebp - 0xc90]
lea eax, [ebx + edi*2]
mov dword [ebp - 0xc78], eax
lea edi, [eax - 2]
test ecx, ecx
jne 0x759e31ba
cmp word [edi], 0x5c
jne 0x759c2a5c
xor eax, eax
lea ecx, [ebp - 0x3c]
mov word [edi], ax
call fcn.759b3c2d
lea ecx, [ebp - 0x20]
call fcn.759b3c2d
call fcn.759b3eb3
cmp eax, 0xffffffff
je 0x759e31d6
cmp eax, 1
je 0x759c5b36
mov eax, dword [0x75bc8050]
cmp eax, 6
jg 0x759c2c1c
jne 0x759c2c49
mov eax, dword [0x75bc8030]
test eax, eax
jle 0x759e31fb
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x759c2c2a
mov eax, esi
or eax, 0x80000000
push dword [ebp - 0xc7c]
lea ecx, [ebx + 8]
push ecx
push eax
mov dword [ebp - 0xc88], ecx
call dword [0x75bc8d90]
test eax, eax
jne 0x759e3213
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x759c564f
or esi, 0x80000000
mov dword [ebp - 0xc88], esi
lea ecx, [ebp - 0x3c]
call fcn.759b3e2d
push eax
mov eax, dword [ebp - 0xc7c]
or eax, 0x20019
push eax
xor esi, esi
push esi
add ebx, 8
push ebx
push dword [ebp - 0xc88]
call dword [0x75bcc908]
cmp eax, esi
jne 0x759c2c9d
mov ecx, dword [ebp - 0xc78]
add ecx, 0xfffffffe
cmp edi, ecx
jne 0x759c2a46
push 0x5c
pop ecx
mov word [edi], cx
lea ecx, [ebp - 0x20]
cmp eax, esi
jne 0x759c6664
call fcn.759b3c00
lea ecx, [ebp - 0x18]
call fcn.759b1681
lea ecx, [ebp - 0x3c]
call fcn.759b3c00
lea ecx, [ebp - 0x34]
call fcn.759b1681
lea ecx, [ebp - 0xc70]
call fcn.759b4cb9
xor eax, eax
cmp dword [ebp - 0xc84], eax
setne al
add eax, 3
jmp 0x759b5377
mov dword [ebp - 0xc88], eax
jmp 0x759c2c60
push 0xfffffffffffffffe
pop eax
jmp 0x759b5378
and dword [ebp - 0xc9c], 0
jmp 0x759b51f7
and dword [ebp - 0xc98], 0
jmp 0x759b520f
push 0xfffffffffffffffa
jmp 0x759b5369
cmp esi, eax
je 0x759c5b3e
jmp 0x759c2c03
push 0xfffffffffffffffd
jmp 0x759b5369
test esi, esi
jne 0x759c5681
push dword [ebp - 0xc7c]
test esi, esi
sete al
movzx eax, al
push eax
lea ecx, [ebp - 0x20]
call fcn.759b3e2d
push eax
call fcn.759c5b72
add esp, 0xc
test eax, eax
je 0x759c2c03
xor esi, esi
jmp 0x759c2c9d
call fcn.759b3c00
lea ecx, [ebp - 0x18]
call fcn.759b1681
lea ecx, [ebp - 0x3c]
call fcn.759b3c00
lea ecx, [ebp - 0x34]
call fcn.759b1681
lea ecx, [ebp - 0xc70]
call fcn.759b4cb9
push 2
pop eax
jmp 0x759b5377
and dword [eax], 0
jmp 0x759b51da
and dword [ecx], 0
jmp 0x759b5217
push 0
push eax
lea ecx, [ebp - 0xc70]
call fcn.75a5e21a
test al, al
je 0x759c567a
mov eax, dword [ebp - 0xc6c]
mov dword [ebp - 0xc78], eax
jmp 0x759b526b
push 0xfffffffffffffff9
jmp 0x759b5369
cmp word [ebp - 0xc98], 0x2a
je 0x759c2b38
test byte [ebp + 0x18], 1
je 0x759e3076
push dword [ebp - 0xc90]
lea eax, [ebp - 0x244]
mov edi, 0x104
mov dword [ebp - 0x24c], edi
mov dword [ebp - 0x250], eax
call fcn.75a1d5ab
pop ecx
lea ecx, [ebp - 0x250]
push ecx
mov ecx, dword [ebp - 0xc88]
push eax
push dword [ebp - 0xca0]
mov dword [ebp - 0xc78], eax
mov dword [ebp - 0x248], edi
call fcn.75a5e622
test al, al
jne 0x759e2f88
mov byte [ebp - 0xc7d], al
lea eax, [ebp - 0x458]
mov dword [ebp - 0x464], eax
lea eax, [ebp - 0xc7d]
push eax
lea eax, [ebp - 0x464]
push eax
push 1
push dword [ebp - 0xc78]
mov dword [ebp - 0x460], edi
push dword [ebp - 0xca0]
mov dword [ebp - 0x45c], edi
call fcn.75a6b8ac
add esp, 0x14
test eax, eax
je 0x759e2f1e
push 0xfffffffffffffffc
pop esi
lea ecx, [ebp - 0x464]
call fcn.759b170a
lea ecx, [ebp - 0x250]
call fcn.759b170a
jmp 0x759b536a
mov edi, dword [ebp - 0x464]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp dword [ebp - 0x24c], eax
jge 0x759e2f42
push 0
push eax
lea ecx, [ebp - 0x250]
call fcn.759b444d
push edi
push dword [ebp - 0x24c]
push dword [ebp - 0x250]
call fcn.759b3cf5
test eax, eax
jge 0x759e2f5c
push 0xfffffffffffffffa
jmp 0x759e2f02
cmp byte [ebp - 0xc7d], 0
je 0x759e2f7d
mov ecx, dword [ebp - 0xc88]
push edi
push dword [ebp - 0xc78]
push dword [ebp - 0xca0]
call fcn.75a5e583
lea ecx, [ebp - 0x464]
call fcn.759b170a
mov eax, dword [ebp - 0x250]
push eax
mov dword [ebp - 0xc84], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0xc88], eax
xor edi, edi
mov eax, dword [ebp - 0xc90]
lea eax, [eax + edi*2]
cmp word [eax], 0
je 0x759e2fc6
movzx eax, byte [eax]
push eax
call sub.msvcrt.dll_isdigit
pop ecx
test eax, eax
je 0x759e2fc6
inc edi
cmp edi, 0x1a
jl 0x759e2fa3
test edi, edi
je 0x759e307d
cmp edi, 0x1a
je 0x759e307d
mov edx, dword [ebp - 0xc90]
push 0x5c
lea eax, [edi + edi]
pop ecx
mov dword [ebp - 0xc78], eax
cmp cx, word [eax + edx]
jne 0x759e307d
mov eax, dword [ebp - 0xc88]
mov ecx, dword [ebp - 0xc94]
sub esi, edi
dec esi
mov edi, esi
add eax, edi
test ecx, ecx
je 0x759e300c
mov dword [ecx], eax
cmp dword [ebp - 0xc8c], 0
je 0x759e3021
cmp dword [ebp - 0xc74], eax
ja 0x759e303a
push 0xfffffffffffffffd
jmp 0x759e307f
push 1
inc eax
push eax
lea ecx, [ebp - 0xc70]
call fcn.75a5e21a
test al, al
je 0x759e307d
mov ebx, dword [ebp - 0xc70]
mov esi, dword [ebp - 0xc88]
lea eax, [edi + edi + 2]
push eax
mov eax, dword [ebp - 0xc78]
lea eax, [eax + ebx + 2]
push eax
add esi, esi
lea eax, [ebx + esi]
push eax
call sub.msvcrt.dll_memmove
push esi
push dword [ebp - 0xc84]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0x18
lea ecx, [ebp - 0x250]
call fcn.759b170a
push 4
jmp 0x759b5369
push 0xfffffffffffffffa
pop esi
jmp 0x759e2f0e
lea ecx, [ebx + 6]
mov esi, ecx
jmp 0x759e30aa
cmp ax, 0x2a
je 0x759e30e7
mov edx, dword [ebp - 0xc90]
imul edx, edx, 0xa
movzx eax, ax
lea eax, [edx + eax - 0x30]
inc esi
mov dword [ebp - 0xc90], eax
inc esi
movzx eax, word [esi]
test ax, ax
jne 0x759e308c
cmp word [esi], 0x2a
je 0x759e30e7
push 0
push 0
mov eax, 0x759b7ff8
push eax
push eax
push eax
push eax
push 0x759b1758
push ebx
push dword [ebp - 0xca0]
push 0x3ea
push 1
push 0x15
call fcn.759c26bf
add esp, 0x30
jmp 0x759c567a
lea eax, [esi + 2]
sub edi, eax
add edi, ebx
sar edi, 1
lea edx, [edi + edi + 2]
push edx
push eax
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
sub esi, ebx
push 0x3a
pop eax
sub esi, 6
mov word [ebx + 4], ax
sar esi, 1
or eax, 0xffffffff
sub eax, esi
add dword [ebp - 0xc7c], eax
cmp dword [ebp - 0xc94], 0
mov edi, dword [ebp - 0xc7c]
je 0x759e312f
mov eax, dword [ebp - 0xc94]
mov dword [eax], edi
mov esi, dword [ebp - 0xc8c]
test esi, esi
je 0x759c2b64
cmp dword [ebp - 0xc94], 0
je 0x759c2b4f
cmp esi, ebx
je 0x759c2b4f
cmp dword [ebp - 0xc74], edi
jbe 0x759c2b4f
lea eax, [edi + edi + 2]
push eax
push ebx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ebx, esi
jmp 0x759c2b4f
sub esi, 0x32
mov eax, esi
cdq
push 0xa
pop ecx
idiv ecx
mov dword [ebp - 0xc84], 1
add eax, 0x30
mov word [ebx], ax
jmp 0x759c2b9c
cmp esi, 0x14
jl 0x759e31ab
sub esi, 0x14
mov dword [ebp - 0xc7c], 0x100
jmp 0x759c2ba9
mov dword [ebp - 0xc7c], 0x200
jmp 0x759c2ba9
lea edi, [ebx + ecx*2 - 2]
add eax, 0xfffffffe
cmp edi, eax
ja 0x759c567a
cmp edi, ebx
jb 0x759c567a
jmp 0x759c2bd7
lea ecx, [ebp - 0x20]
call fcn.759b3c00
lea ecx, [ebp - 0x18]
call fcn.759b1681
lea ecx, [ebp - 0x3c]
call fcn.759b3c00
lea ecx, [ebp - 0x34]
call fcn.759b1681
jmp 0x759c567a
jne 0x759c2c49
cmp dword [0x75bcca80], 0
jge 0x759c2c1c
jmp 0x759c2c49
xor esi, esi
cmp dword [0x75bc8ca8], esi
je 0x759e3240
push esi
push esi
mov eax, 0x759b7ff8
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0xc88]
push 0x759fceb0
push esi
push esi
push 0xa
call fcn.759c26bf
add esp, 0x30
mov eax, dword [ebp - 0xca4]
cmp eax, esi
je 0x759e3250
mov dword [eax], 1
lea ecx, [ebp - 0x20]
call fcn.759b3c00
lea ecx, [ebp - 0x18]
call fcn.759b1681
lea ecx, [ebp - 0x3c]
call fcn.759b3c00
lea ecx, [ebp - 0x34]
call fcn.759b1681
lea ecx, [ebp - 0xc70]
call fcn.759b4cb9
xor eax, eax
cmp dword [ebp - 0xc84], esi
jmp 0x759c2cde
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
jmp 0x759b5357
push 2
jmp 0x759b5369
cmp dword [ebp - 0xc78], 0
je 0x759e3393
push 0
lea eax, [ebp - 8]
push 0x105
lea ecx, [ebp - 0x14]
mov dword [ebp - 0xc74], esi
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x14], eax
call fcn.759c5bb8
test al, al
je 0x759e3333
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc78]
or dword [ebp - 0xc8c], 0xffffffff
lea eax, [ebp - 0xc8c]
push eax
push esi
push dword [ebp - 0x14]
lea eax, [ebp - 0xc74]
push eax
push dword [ebp - 0xc74]
add edi, 2
push dword [ebp - 0xc70]
push dword [ebp + 0x18]
push edi
call fcn.75b13b8d
test eax, eax
jl 0x759e337e
cmp dword [ebp - 0xc8c], 0xfffffffd
jne 0x759e337a
inc dword [ebp - 0xc74]
push 0
push dword [ebp - 0xc74]
lea ecx, [ebp - 0xc70]
call fcn.75a5e21a
test al, al
jne 0x759e334d
lea ecx, [ebp - 0x14]
call fcn.759b1681
lea ecx, [ebp - 0xc70]
call fcn.759b4cb9
push 0xfffffffffffffffa
jmp 0x759c668e
mov ecx, dword [ebp - 0xc78]
lea eax, [ebp - 0xc8c]
push eax
push esi
push dword [ebp - 0x14]
lea eax, [ebp - 0xc74]
push eax
push dword [ebp - 0xc74]
push dword [ebp - 0xc70]
push dword [ebp + 0x18]
push edi
call fcn.75b13b8d
test eax, eax
jge 0x759e3383
push 0xfffffffffffffffa
pop esi
jmp 0x759e3389
mov esi, dword [ebp - 0xc8c]
lea ecx, [ebp - 0x14]
call fcn.759b1681
jmp 0x759e33ca
xor eax, eax
cmp word [ebp - 0xc84], 0x3c
push 0
setne al
push 0
add edi, 2
mov dword [ebp - 0xc68], esi
inc eax
push eax
mov eax, dword [ebp + 0x18]
or eax, 4
push eax
lea eax, [ebp - 0xc70]
push eax
push edx
push ebx
push edi
call fcn.75a5f6ef
add esp, 0x20
mov esi, eax
cmp esi, 2
jne 0x759b536a
cmp byte [ebp + 0x20], 0
je 0x759b536a
cmp word [ebp - 0xc84], 0x3c
jne 0x759b536a
cmp byte [ebp + 0x24], 0
je 0x759b5367
jmp 0x759b536a