Function at 0x4a156c
Capabilities:
Get common file path
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x2c
push 0
push 0
dec ecx
jne 0x4a1574
push ecx
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x4a1fda
push dword fs:[eax]
mov dword fs:[eax], esp
xor esi, esi
xor eax, eax
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x28], eax
push 0x4d2ea4
push 0x104
call sub.kernel32.dll_GetTempPathA
push 0x4a1ff0
push 0x4a1ff8
mov ecx, dword [0x4d1718]
mov dl, 1
mov eax, dword [0x41a6b4]
call fcn.0041f410
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x30]
mov edx, 0x4d2ea4
mov ecx, 0x105
call fcn.00404a70
lea eax, [ebp - 0x30]
mov edx, 0x4a2004
call fcn.00404ac8
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xc]
call fcn.0041f0dc
push 0x4a201c
push 0x4a1ff8
mov ecx, dword [0x4d1718]
mov dl, 1
mov eax, dword [0x41a6b4]
call fcn.0041f410
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x34]
mov edx, 0x4d2ea4
mov ecx, 0x105
call fcn.00404a70
lea eax, [ebp - 0x34]
mov edx, 0x4a202c
call fcn.00404ac8
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x10]
call fcn.0041f0dc
mov dl, 1
mov eax, dword [0x41a5b0]
call fcn.004039e8
mov dword [ebp - 4], eax
push 0x4a2040
push 0x4a1ff8
mov ecx, dword [0x4d1718]
mov dl, 1
mov eax, dword [0x41a6b4]
call fcn.0041f410
mov dword [ebp - 8], eax
mov dl, 1
mov eax, dword [0x41a2c0]
call fcn.004039e8
mov dword [ebp - 0x2c], eax
xor eax, eax
push ebp
push 0x4a1f9b
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0041f178
lea eax, [ebp - 4]
call fcn.004ab6c0
mov eax, dword [ebp - 4]
call fcn.0041ea38
push eax
sar eax, 0x1f
cmp eax, edx
pop eax
je 0x4a16b3
call fcn.00403950
mov ebx, eax
mov eax, ebx
call fcn.004027a4
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov byte [eax], 0
mov edx, dword [ebp - 0x14]
mov ecx, ebx
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 8]
push 0x1f40
mov eax, 0x4d2fb4
mov ecx, 1
mov edx, dword [0x4a0634]
call fcn.00405e0c
add esp, 4
push 0x1f40
mov eax, 0x4d2fb8
mov ecx, 1
mov edx, dword [0x4a0654]
call fcn.00405e0c
add esp, 4
push 0x1f40
mov eax, 0x4d2fcc
mov ecx, 1
mov edx, dword [0x4a06f4]
call fcn.00405e0c
add esp, 4
push 0x1f40
mov eax, 0x4d2fdc
mov ecx, 1
mov edx, dword [0x4a0774]
call fcn.00405e0c
add esp, 4
push 0x1f40
mov eax, 0x4d2fe0
mov ecx, 1
mov edx, dword [0x4a0794]
call fcn.00405e0c
add esp, 4
push 0x1f40
mov eax, 0x4d2fe4
mov ecx, 1
mov edx, dword [0x4a07b4]
call fcn.00405e0c
add esp, 4
push 0x1f40
mov eax, 0x4d2fe8
mov ecx, 1
mov edx, dword [0x4a07d4]
call fcn.00405e0c
add esp, 4
push 0xdbba0
mov eax, 0x4d2fd8
mov ecx, 1
mov edx, dword [0x4a0754]
call fcn.00405e0c
add esp, 4
mov dword [0x4d3000], 1
jmp 0x4a1dde
mov eax, dword [ebp - 0x14]
cmp bl, 0x23
jne 0x4a17eb
add dword [ebp - 0x20], 1
jno 0x4a17dc
call fcn.00403958
add esi, 2
jno 0x4a17e6
call fcn.00403958
jmp 0x4a1dd4
mov eax, dword [ebp - 0x14]
cmp bl, 0xd
jne 0x4a1db6
cmp dword [ebp - 0x20], 0
jne 0x4a180f
mov eax, 0x4d2ff4
mov edx, dword [ebp - 0x18]
call fcn.0040485c
jmp 0x4a1da2
cmp dword [ebp - 0x20], 1
jne 0x4a1827
mov eax, 0x4d2fb0
mov edx, dword [ebp - 0x18]
call fcn.0040485c
jmp 0x4a1da2
cmp dword [ebp - 0x20], 2
jne 0x4a18fd
mov al, byte [0x4a2044]
push eax
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x4a2050
mov edx, 0x4a205c
mov eax, dword [ebp - 0x18]
call fcn.0040da04
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
lea ecx, [ebp - 0x13c]
xor edx, edx
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x13c]
lea eax, [ebp - 0x138]
mov ecx, 0xff
call fcn.00404a9c
lea edx, [ebp - 0x138]
mov eax, dword [ebp - 0x24]
imul eax, eax, 0xb
jno 0x4a1891
call fcn.00403958
mov ecx, dword [0x4d2fe4]
lea eax, [ecx + eax]
mov cl, 0xa
call fcn.00402fa8
lea ecx, [ebp - 0x140]
mov edx, 1
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x140]
lea eax, [ebp - 0x138]
mov ecx, 0xff
call fcn.00404a9c
lea edx, [ebp - 0x138]
mov eax, dword [ebp - 0x24]
imul eax, eax, 3
jno 0x4a18dd
call fcn.00403958
mov ecx, dword [0x4d2fe8]
lea eax, [ecx + eax*2]
mov cl, 5
call fcn.00402fa8
add dword [ebp - 0x24], 1
jno 0x4a18f8
call fcn.00403958
jmp 0x4a1da2
cmp dword [ebp - 0x20], 3
jne 0x4a1a59
mov al, byte [0x4a2044]
push eax
lea eax, [ebp - 0x144]
push eax
mov ecx, 0x4a2050
mov edx, 0x4a2068
mov eax, dword [ebp - 0x18]
call fcn.0040da04
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
lea ecx, [ebp - 0x148]
xor edx, edx
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x28]
mov ecx, dword [0x4d2fb4]
test ecx, ecx
je 0x4a195c
cmp eax, dword [ecx - 4]
jb 0x4a1961
call fcn.00403950
lea eax, [ecx + eax*4]
call fcn.0040485c
lea ecx, [ebp - 0x14c]
mov edx, 1
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x28]
mov ecx, dword [0x4d2fb8]
test ecx, ecx
je 0x4a1994
cmp eax, dword [ecx - 4]
jb 0x4a1999
call fcn.00403950
lea eax, [ecx + eax*4]
call fcn.0040485c
lea ecx, [ebp - 0x150]
mov edx, 2
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x28]
mov ecx, dword [0x4d2fcc]
test ecx, ecx
je 0x4a19cc
cmp eax, dword [ecx - 4]
jb 0x4a19d1
call fcn.00403950
lea eax, [ecx + eax*4]
call fcn.0040485c
lea ecx, [ebp - 0x154]
mov edx, 3
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x28]
mov ecx, dword [0x4d2fdc]
test ecx, ecx
je 0x4a1a04
cmp eax, dword [ecx - 4]
jb 0x4a1a09
call fcn.00403950
lea eax, [ecx + eax*4]
call fcn.0040485c
lea ecx, [ebp - 0x158]
mov edx, 4
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x28]
mov ecx, dword [0x4d2fe0]
test ecx, ecx
je 0x4a1a3c
cmp eax, dword [ecx - 4]
jb 0x4a1a41
call fcn.00403950
lea eax, [ecx + eax*4]
call fcn.0040485c
add dword [ebp - 0x28], 1
jno 0x4a1a54
call fcn.00403958
jmp 0x4a1da2
cmp dword [ebp - 0x20], 4
jne 0x4a1da2
mov eax, dword [ebp - 0x18]
call fcn.00404ac0
mov ebx, eax
xor eax, eax
mov dword [0x4d3000], eax
lea eax, [ebp - 0x1c]
call fcn.00404808
mov edi, ebx
test edi, edi
jle 0x4a1da2
mov ebx, 1
mov eax, dword [ebp - 0x18]
dec ebx
test eax, eax
je 0x4a1a98
cmp ebx, dword [eax - 4]
jb 0x4a1a9d
call fcn.00403950
inc ebx
cmp byte [eax + ebx - 1], 0x40
jne 0x4a1ac7
lea eax, [ebp - 0x18]
call fcn.00404d10
dec ebx
test eax, eax
je 0x4a1ab7
cmp ebx, dword [eax - 4]
jb 0x4a1abc
call fcn.00403950
inc ebx
mov byte [eax + ebx - 1], 0x30
jmp 0x4a1d14
mov eax, dword [ebp - 0x18]
dec ebx
test eax, eax
je 0x4a1ad4
cmp ebx, dword [eax - 4]
jb 0x4a1ad9
call fcn.00403950
inc ebx
cmp byte [eax + ebx - 1], 0x5e
jne 0x4a1b03
lea eax, [ebp - 0x18]
call fcn.00404d10
dec ebx
test eax, eax
je 0x4a1af3
cmp ebx, dword [eax - 4]
jb 0x4a1af8
call fcn.00403950
inc ebx
mov byte [eax + ebx - 1], 0x31
jmp 0x4a1d14
mov eax, dword [ebp - 0x18]
dec ebx
test eax, eax
je 0x4a1b10
cmp ebx, dword [eax - 4]
jb 0x4a1b15
call fcn.00403950
inc ebx
cmp byte [eax + ebx - 1], 0x3c
jne 0x4a1b3f
lea eax, [ebp - 0x18]
call fcn.00404d10
dec ebx
test eax, eax
je 0x4a1b2f
cmp ebx, dword [eax - 4]
jb 0x4a1b34
call fcn.00403950
inc ebx
mov byte [eax + ebx - 1], 0x32
jmp 0x4a1d14
mov eax, dword [ebp - 0x18]
dec ebx
test eax, eax
je 0x4a1b4c
cmp ebx, dword [eax - 4]
jb 0x4a1b51
call fcn.00403950
inc ebx
cmp byte [eax + ebx - 1], 0x26
jne 0x4a1b7b
lea eax, [ebp - 0x18]
call fcn.00404d10
dec ebx
test eax, eax
je 0x4a1b6b
cmp ebx, dword [eax - 4]
jb 0x4a1b70
call fcn.00403950
inc ebx
mov byte [eax + ebx - 1], 0x33
jmp 0x4a1d14
mov eax, dword [ebp - 0x18]
dec ebx
test eax, eax
je 0x4a1b88
cmp ebx, dword [eax - 4]
jb 0x4a1b8d
call fcn.00403950
inc ebx
cmp byte [eax + ebx - 1], 0x25
jne 0x4a1bb7
lea eax, [ebp - 0x18]
call fcn.00404d10
dec ebx
test eax, eax
je 0x4a1ba7
cmp ebx, dword [eax - 4]
jb 0x4a1bac
call fcn.00403950
inc ebx
mov byte [eax + ebx - 1], 0x34
jmp 0x4a1d14
mov eax, dword [ebp - 0x18]
dec ebx
test eax, eax
je 0x4a1bc4
cmp ebx, dword [eax - 4]
jb 0x4a1bc9
call fcn.00403950
inc ebx
cmp byte [eax + ebx - 1], 0x2a
jne 0x4a1bf3
lea eax, [ebp - 0x18]
call fcn.00404d10
dec ebx
test eax, eax
je 0x4a1be3
cmp ebx, dword [eax - 4]
jb 0x4a1be8
call fcn.00403950
inc ebx
mov byte [eax + ebx - 1], 0x35
jmp 0x4a1d14
mov eax, dword [ebp - 0x18]
dec ebx
test eax, eax
je 0x4a1c00
cmp ebx, dword [eax - 4]
jb 0x4a1c05
call fcn.00403950
inc ebx
cmp byte [eax + ebx - 1], 0x22
jne 0x4a1c2f
lea eax, [ebp - 0x18]
call fcn.00404d10
dec ebx
test eax, eax
je 0x4a1c1f
cmp ebx, dword [eax - 4]
jb 0x4a1c24
call fcn.00403950
inc ebx
mov byte [eax + ebx - 1], 0x36
jmp 0x4a1d14
mov eax, dword [ebp - 0x18]
dec ebx
test eax, eax
je 0x4a1c3c
cmp ebx, dword [eax - 4]
jb 0x4a1c41
call fcn.00403950
inc ebx
cmp byte [eax + ebx - 1], 0x3e
jne 0x4a1c6b
lea eax, [ebp - 0x18]
call fcn.00404d10
dec ebx
test eax, eax
je 0x4a1c5b
cmp ebx, dword [eax - 4]
jb 0x4a1c60
call fcn.00403950
inc ebx
mov byte [eax + ebx - 1], 0x37
jmp 0x4a1d14
mov eax, dword [ebp - 0x18]
dec ebx
test eax, eax
je 0x4a1c78
cmp ebx, dword [eax - 4]
jb 0x4a1c7d
call fcn.00403950
inc ebx
cmp byte [eax + ebx - 1], 0x5f
jne 0x4a1ca4
lea eax, [ebp - 0x18]
call fcn.00404d10
dec ebx
test eax, eax
je 0x4a1c97
cmp ebx, dword [eax - 4]
jb 0x4a1c9c
call fcn.00403950
inc ebx
mov byte [eax + ebx - 1], 0x38
jmp 0x4a1d14
mov eax, dword [ebp - 0x18]
dec ebx
test eax, eax
je 0x4a1cb1
cmp ebx, dword [eax - 4]
jb 0x4a1cb6
call fcn.00403950
inc ebx
cmp byte [eax + ebx - 1], 0x3f
jne 0x4a1cdd
lea eax, [ebp - 0x18]
call fcn.00404d10
dec ebx
test eax, eax
je 0x4a1cd0
cmp ebx, dword [eax - 4]
jb 0x4a1cd5
call fcn.00403950
inc ebx
mov byte [eax + ebx - 1], 0x39
jmp 0x4a1d14
mov eax, dword [ebp - 0x18]
dec ebx
test eax, eax
je 0x4a1cea
cmp ebx, dword [eax - 4]
jb 0x4a1cef
call fcn.00403950
inc ebx
cmp byte [eax + ebx - 1], 0x20
jne 0x4a1d14
lea eax, [ebp - 0x18]
call fcn.00404d10
dec ebx
test eax, eax
je 0x4a1d09
cmp ebx, dword [eax - 4]
jb 0x4a1d0e
call fcn.00403950
inc ebx
mov byte [eax + ebx - 1], 0x7c
mov eax, dword [ebp - 0x18]
dec ebx
test eax, eax
je 0x4a1d21
cmp ebx, dword [eax - 4]
jb 0x4a1d26
call fcn.00403950
inc ebx
cmp byte [eax + ebx - 1], 0x7c
jne 0x4a1d6a
mov eax, dword [0x4d3000]
mov edx, dword [0x4d2fd8]
test edx, edx
je 0x4a1d42
cmp eax, dword [edx - 4]
jb 0x4a1d47
call fcn.00403950
lea eax, [edx + eax*4]
mov edx, dword [ebp - 0x1c]
call fcn.0040485c
add dword [0x4d3000], 1
jno 0x4a1d60
call fcn.00403958
lea eax, [ebp - 0x1c]
call fcn.00404808
jmp 0x4a1d9a
lea eax, [ebp - 0x15c]
mov edx, dword [ebp - 0x18]
dec ebx
test edx, edx
je 0x4a1d7d
cmp ebx, dword [edx - 4]
jb 0x4a1d82
call fcn.00403950
inc ebx
mov dl, byte [edx + ebx - 1]
call fcn.004049e8
mov edx, dword [ebp - 0x15c]
lea eax, [ebp - 0x1c]
call fcn.00404ac8
inc ebx
dec edi
jne 0x4a1a8b
lea eax, [ebp - 0x18]
call fcn.00404808
add esi, 1
jno 0x4a1db4
call fcn.00403958
jmp 0x4a1dd4
lea eax, [ebp - 0x160]
mov edx, dword [ebp - 0x14]
mov edx, ebx
call fcn.004049e8
mov edx, dword [ebp - 0x160]
lea eax, [ebp - 0x18]
call fcn.00404ac8
add esi, 1
jno 0x4a1dde
call fcn.00403958
mov eax, dword [ebp - 0x14]
mov bl, byte [eax + esi]
test bl, bl
jne 0x4a17c9
mov eax, dword [ebp - 0x14]
mov byte [eax], 0
mov eax, dword [ebp - 0x28]
push eax
mov eax, 0x4d2fb4
mov ecx, 1
mov edx, dword [0x4a0634]
call fcn.00405e0c
add esp, 4
mov eax, dword [ebp - 0x28]
push eax
mov eax, 0x4d2fb8
mov ecx, 1
mov edx, dword [0x4a0654]
call fcn.00405e0c
add esp, 4
mov eax, dword [ebp - 0x28]
push eax
mov eax, 0x4d2fcc
mov ecx, 1
mov edx, dword [0x4a06f4]
call fcn.00405e0c
add esp, 4
mov eax, dword [ebp - 0x28]
push eax
mov eax, 0x4d2fdc
mov ecx, 1
mov edx, dword [0x4a0774]
call fcn.00405e0c
add esp, 4
mov eax, dword [ebp - 0x28]
push eax
mov eax, 0x4d2fe0
mov ecx, 1
mov edx, dword [0x4a0794]
call fcn.00405e0c
add esp, 4
mov eax, dword [ebp - 0x24]
push eax
mov eax, 0x4d2fe4
mov ecx, 1
mov edx, dword [0x4a07b4]
call fcn.00405e0c
add esp, 4
mov eax, dword [ebp - 0x24]
push eax
mov eax, 0x4d2fe8
mov ecx, 1
mov edx, dword [0x4a07d4]
call fcn.00405e0c
add esp, 4
mov eax, dword [0x4d3000]
push eax
mov eax, 0x4d2fd8
mov ecx, 1
mov edx, dword [0x4a0754]
call fcn.00405e0c
add esp, 4
mov eax, dword [0x4d3000]
add eax, 1
jno 0x4a1ee3
call fcn.00403958
mov ecx, 9
cdq
idiv ecx
mov dword [0x4d3000], eax
mov eax, dword [ebp - 0x28]
sub eax, 1
jno 0x4a1efd
call fcn.00403958
mov dword [0x4d300c], eax
lea eax, [ebp - 0x164]
mov ecx, dword [0x4d2ff4]
mov edx, 0x4a2074
call fcn.00404b0c
mov edx, dword [ebp - 0x164]
mov eax, dword [0x4d0118]
mov eax, dword [eax]
mov eax, dword [eax + 0x384]
call fcn.00448b74
mov eax, dword [0x4d0118]
mov eax, dword [eax]
mov eax, dword [eax + 0x384]
mov edx, dword [eax]
call dword [edx + 0x80]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a1fa2
mov eax, dword [ebp - 0x2c]
call fcn.00403a18
mov eax, dword [ebp - 4]
call fcn.00403a18
cmp dword [ebp - 8], 0
je 0x4a1f70
mov eax, dword [ebp - 8]
call fcn.00403a18
mov eax, dword [ebp - 0xc]
call fcn.00403a18
mov eax, dword [ebp - 0x10]
call fcn.00403a18
cmp dword [ebp - 0x14], 0
je 0x4a1f8e
mov eax, dword [ebp - 0x14]
call fcn.004027c4
call fcn.004a10c4
mov byte [0x4ce6f8], 1
ret