Function at 0x44c199
Capabilities:
Parse credit card information
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf8
mov al, byte [ecx + 9]
push ebx
push esi
xor esi, esi
cmp dword [ebp + 0x10], esi
push edi
setl byte [ebp - 6]
and al, 0x11
cmp byte [ebp - 6], 0
mov dword [ebp - 0x10], ecx
mov byte [ebp - 5], al
jne 0x44c1c5
test byte [ebp + 0x14], 0x80
je 0x44c1c9
mov byte [ebp - 5], 0
mov eax, dword [ebp + 0x18]
and byte [ebp + 0x14], 1
cmp eax, esi
mov byte [ebp - 7], 0
mov byte [ebp - 8], 0
je 0x44c1e1
mov al, byte [eax]
mov byte [ebp - 8], al
push 0x50
pop eax
push eax
lea ecx, [ebp - 0xc]
mov dword [ebp - 0x2c], eax
call fcn.0043dd9c
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x10]
push eax
push dword [ebp + 0xc]
lea ecx, [ebp - 0x54]
mov dword [ebp - 4], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x30], esi
call fcn.00444b4d
mov edi, dword [ebp + 8]
mov ebx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x24]
jae 0x44c7aa
cmp word [edi], 0
je 0x44c7aa
lea ecx, [ebp - 0x54]
call fcn.00444c3f
cmp word [edi], 0x25
je 0x44c26e
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 4]
sar ecx, 1
jmp 0x44c269
mov ax, word [edi]
test ax, ax
je 0x44c221
cmp ax, 0x25
je 0x44c221
mov edx, dword [ebp - 4]
mov word [edx], ax
add dword [ebp - 4], 2
inc edi
inc edi
dec ecx
jns 0x44c24f
jmp 0x44c221
cmp byte [ebp + 0x14], 0
mov esi, edi
je 0x44c48b
lea edx, [edi + 2]
mov cx, word [edx]
cmp cx, 0x25
jne 0x44c295
mov eax, dword [ebp - 4]
mov word [eax], cx
add dword [ebp - 4], 2
add edi, 4
jmp 0x44c221
cmp cx, 0x23
jne 0x44c2d7
mov eax, dword [ebx + 0x3c]
add edi, 4
test eax, eax
je 0x44c21e
mov ecx, dword [ebx + 0x38]
mov eax, dword [eax + ecx*4 + 8]
mov cx, word [eax]
test cx, cx
je 0x44c21e
mov edx, dword [ebp - 4]
mov word [edx], cx
add dword [ebp - 4], 2
inc eax
inc eax
xor ecx, ecx
mov cx, word [eax]
test cx, cx
jne 0x44c2bc
jmp 0x44c221
cmp cx, 0x2a
jne 0x44c32f
mov eax, dword [ebx + 0x3c]
add edi, 4
test eax, eax
je 0x44c21e
mov ecx, dword [ebx + 0x38]
push dword [eax + ecx*4]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
lea eax, [esi + 2]
push eax
lea ecx, [ebp - 0x54]
call fcn.00444bc4
dec esi
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ecx + eax*4]
js 0x44c21e
lea ecx, [esi + 1]
mov dx, word [eax]
mov esi, dword [ebp - 4]
mov word [esi], dx
add dword [ebp - 4], 2
inc eax
inc eax
dec ecx
jne 0x44c318
jmp 0x44c221
cmp cx, 0x40
jne 0x44c389
mov eax, dword [ebx + 0x3c]
add edi, 4
test eax, eax
je 0x44c21e
mov ecx, dword [ebx + 0x38]
push dword [eax + ecx*4 + 4]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
lea eax, [esi + 2]
push eax
lea ecx, [ebp - 0x54]
call fcn.00444bc4
dec esi
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ecx + eax*4 + 4]
js 0x44c21e
lea ecx, [esi + 1]
mov dx, word [eax]
mov esi, dword [ebp - 4]
mov word [esi], dx
add dword [ebp - 4], 2
inc eax
inc eax
dec ecx
jne 0x44c372
jmp 0x44c221
push ecx
call fcn.004129ca
add esp, 4
test al, al
jne 0x44c3b7
cmp cx, 0x7e
jb 0x44c48b
xor eax, eax
mov ax, word [edi + 4]
push eax
call fcn.004129ca
add esp, 4
test al, al
je 0x44c48b
and dword [ebp - 0x18], 0
cmp cx, 0x7e
jb 0x44c3ca
mov dword [ebp - 0x18], 0x25
mov edi, edx
xor ecx, ecx
mov dword [ebp - 0x38], ecx
jmp 0x44c3f9
push 0
push 0xa
push dword [ebp - 0x38]
push ecx
call fcn.00492f10
mov ecx, eax
mov eax, edx
mov dword [ebp + 8], eax
movzx eax, si
cdq
add ecx, eax
mov eax, dword [ebp + 8]
adc eax, edx
add ecx, 0xffffffd0
adc eax, 0xffffffff
mov dword [ebp - 0x38], eax
inc edi
inc edi
xor esi, esi
mov si, word [edi]
push esi
call fcn.004129ca
add esp, 4
test al, al
jne 0x44c3d1
mov eax, dword [ebx + 0x38]
cdq
cmp dword [ebp - 0x38], edx
ja 0x44c21e
jb 0x44c424
cmp ecx, eax
jae 0x44c21e
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x44c21e
mov esi, dword [eax + ecx*4]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp dword [ebp - 0x18], 0
mov dword [ebp + 8], eax
je 0x44c458
cmp word [esi], 0x22
jne 0x44c458
cmp word [esi + eax*2 - 2], 0x22
jne 0x44c453
dec dword [ebp + 8]
dec dword [ebp + 8]
inc esi
inc esi
mov eax, dword [ebp + 8]
add eax, 2
push eax
lea ecx, [ebp - 0x54]
call fcn.00444bc4
dec dword [ebp + 8]
js 0x44c21e
mov eax, dword [ebp + 8]
inc eax
mov cx, word [esi]
mov edx, dword [ebp - 4]
mov word [edx], cx
add dword [ebp - 4], 2
inc esi
inc esi
dec eax
jne 0x44c474
jmp 0x44c221
push 8
push str._RANDOM_
push edi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x44c4aa
call fcn.0043a2d5
and edx, 0x7fffffff
jmp 0x44c4c4
push 8
push str.___THIS_
push edi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x44c52e
lea eax, [ebx + 0x75bd036]
xor edx, edx
and word [ebp - 0xf8], 0
push edx
push eax
lea eax, [ebp - 0xf8]
push eax
add edi, 0x10
call fcn.004878fc
and word [ebp - 0x56], 0
add esp, 0xc
lea eax, [ebp - 0xf8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
cmp esi, 1
jge 0x44c4fb
xor esi, esi
lea eax, [esi + 2]
push eax
lea ecx, [ebp - 0x54]
call fcn.00444bc4
dec esi
lea eax, [ebp - 0xf8]
js 0x44c21e
lea ecx, [esi + 1]
mov dx, word [eax]
mov esi, dword [ebp - 4]
mov word [esi], dx
add dword [ebp - 4], 2
inc eax
inc eax
dec ecx
jne 0x44c517
jmp 0x44c221
lea ebx, [edi + 2]
mov edi, ebx
jmp 0x44c543
cmp ax, 0x25
je 0x44c54b
cmp ax, 0x3d
je 0x44c54b
inc edi
inc edi
mov ax, word [edi]
test ax, ax
jne 0x44c535
mov eax, edi
sub eax, esi
sar eax, 1
cmp word [edi], 0x25
mov dword [ebp - 0x14], eax
movsx eax, byte [ebp - 5]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x34], esi
mov byte [ebp + 0xb], 0
mov dword [ebp - 0x20], eax
jne 0x44c6d9
cmp byte [ebp - 6], 0
jne 0x44c5a7
mov ax, word [ebx]
cmp ax, 0x26
je 0x44c58a
cmp byte [ebp - 5], 0
je 0x44c5a7
cmp ax, 0x5e
je 0x44c5a7
inc edi
inc edi
cmp word [ebx], 0x26
mov dword [ebp - 0x28], ebx
jne 0x44c649
inc ebx
inc ebx
mov dword [ebp - 0x20], 1
jmp 0x44c649
inc edi
inc edi
cmp word [ebx], 0x5e
jne 0x44c5b5
inc ebx
inc ebx
mov byte [ebp + 0xb], 8
mov dword [ebp - 0x28], ebx
mov eax, dword [ebp - 0xc]
and word [eax], 0
cmp byte [ebp - 8], 0
jne 0x44c635
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
push dword [ebp - 0xc]
and word [eax], 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov esi, eax
test esi, esi
jle 0x44c614
mov eax, dword [ebp - 0xc]
cmp word [eax], 0
jne 0x44c614
add esi, 0x64
push esi
lea ecx, [ebp - 0xc]
mov dword [ebp - 0x2c], esi
call fcn.0043ddc3
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push esi
push dword [ebp - 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov esi, eax
mov eax, dword [ebp - 0x18]
mov word [eax], 0x25
call dword [sym.imp.KERNEL32.dll_GetLastError]
test esi, esi
jg 0x44c74b
cmp eax, 0xcb
jne 0x44c74b
cmp byte [ebp + 0xb], 0
jne 0x44c6c3
cmp byte [ebp - 6], 0
mov byte [ebp + 0xb], 1
jne 0x44c6c3
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
and word [esi], 0
push 0xffffffffffffffff
push 0
push dword [ebp - 0x28]
call fcn.00413152
test eax, eax
mov word [esi], 0x25
jne 0x44c67f
cmp dword [ebp - 0x20], eax
jne 0x44c21e
cmp byte [ebp + 0xb], al
jne 0x44c6b7
mov byte [ebp + 0xb], 1
jmp 0x44c5b8
mov esi, dword [eax]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
lea eax, [ebx + 2]
push eax
lea ecx, [ebp - 0x54]
call fcn.00444bc4
dec ebx
js 0x44c21e
lea eax, [ebx + 1]
mov cx, word [esi]
mov edx, dword [ebp - 4]
mov word [edx], cx
add dword [ebp - 4], 2
inc esi
inc esi
dec eax
jne 0x44c6a0
jmp 0x44c21e
cmp byte [ebp - 5], 1
je 0x44c21e
jmp 0x44c6d7
cmp byte [ebp - 5], 1
jne 0x44c6d1
xor al, al
je 0x44c21e
dec edi
dec edi
xor al, al
je 0x44c6d9
dec edi
dec edi
mov eax, dword [ebp - 0x14]
add eax, 3
push eax
lea ecx, [ebp - 0x54]
call fcn.00444bc4
cmp word [edi], 0x25
jne 0x44c724
lea ecx, [edi + 2]
mov ax, word [ecx]
cmp ax, 0x25
je 0x44c71f
cmp ax, 0x2a
je 0x44c71f
cmp ax, 0x40
je 0x44c71f
cmp ax, 0x23
je 0x44c71f
cmp ax, 0x7e
je 0x44c71f
push eax
call fcn.004129ca
add esp, 4
test al, al
je 0x44c724
inc dword [ebp - 0x14]
mov edi, ecx
dec dword [ebp - 0x14]
js 0x44c21e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
inc ecx
mov dx, word [eax]
mov esi, dword [ebp - 4]
mov word [esi], dx
add dword [ebp - 4], 2
inc eax
inc eax
dec ecx
jne 0x44c734
jmp 0x44c21e
cmp dword [ebp + 0x18], 0
je 0x44c772
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x92], 0
jne 0x44c772
push 0x25
push dword [ebp - 0xc]
call dword [sym.imp.SHLWAPI.dll_StrChrW]
test eax, eax
je 0x44c772
mov eax, dword [ebp + 0x18]
mov byte [eax], 1
test esi, esi
jle 0x44c77a
mov byte [ebp - 7], 1
mov ebx, dword [ebp - 0xc]
lea eax, [esi + 2]
push eax
lea ecx, [ebp - 0x54]
call fcn.00444bc4
dec esi
js 0x44c21e
lea eax, [esi + 1]
mov cx, word [ebx]
mov edx, dword [ebp - 4]
mov word [edx], cx
add dword [ebp - 4], 2
inc ebx
inc ebx
dec eax
jne 0x44c793
jmp 0x44c21e
and word [eax], 0
cmp byte [ebp - 7], 0
jne 0x44c7c7
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x44c7c7
cmp byte [ebx + 0x92], 0
jne 0x44c7c7
mov byte [eax], 1
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0xc]
sar eax, 1
inc eax
inc eax
push eax
call fcn.0043ddc3
mov esi, dword [ebp - 4]
sub esi, dword [ebp - 0x1c]
lea ecx, [ebp - 0xc]
sar esi, 1
call fcn.00437e1a
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 0x14