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

Disassembly:
push 0xffffffffffffffff
push 0x4e5de8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x6c
mov al, byte [ecx + 0xb]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x90]
xor ebx, ebx
cmp esi, ebx
setl dl
and al, 0x11
test dl, dl
push edi
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x16], dl
mov byte [esp + 0x14], al
jne 0x4527ca
mov al, byte [esp + 0x98]
test al, al
jns 0x4527cf
mov byte [esp + 0x14], 0
mov dl, byte [esp + 0x98]
mov eax, dword [esp + 0x9c]
and dl, 1
cmp eax, ebx
mov byte [esp + 0x98], dl
mov byte [esp + 0x17], 0
mov byte [esp + 0x15], 0
je 0x4527fb
mov al, byte [eax]
mov byte [esp + 0x15], al
push 0xa2
mov dword [esp + 0x30], 0x50
call fcn.00445f00
add esp, 4
cmp eax, ebx
mov dword [esp + 0x20], eax
je 0x45281b
mov word [eax], bx
cmp esi, 0x400
mov edi, dword [esp + 0x90]
mov dword [esp + 0x84], ebx
jge 0x45285a
mov ecx, dword [edi]
mov esi, 0x400
push ecx
mov eax, 0x802
mov dword [esp + 0x98], esi
call fcn.00445f60
add esp, 4
cmp eax, ebx
mov dword [edi], eax
je 0x45285a
mov word [eax + 0x800], bx
mov eax, dword [edi]
lea edx, [eax + esi*2 - 2]
mov ebp, eax
mov dword [esp + 0x18], edx
mov esi, ebp
jmp 0x452870
mov eax, dword [esp + 0x18]
cmp esi, eax
jae 0x453114
mov ebx, dword [esp + 0x8c]
cmp word [ebx], 0
je 0x453114
mov edi, dword [esp + 0x90]
add eax, 0xfffff81c
mov ecx, esi
sub ecx, eax
test ecx, 0xfffffffe
jl 0x4528f3
mov eax, dword [esp + 0x94]
mov edx, dword [edi]
add eax, 0x400
mov dword [esp + 0x94], eax
sub esi, ebp
lea eax, [eax + eax + 2]
push edx
sar esi, 1
call fcn.00445f60
add esp, 4
test eax, eax
mov dword [edi], eax
je 0x4528de
mov ecx, dword [esp + 0x94]
mov word [eax + ecx*2], 0
mov ebp, dword [edi]
mov edx, dword [esp + 0x94]
lea eax, [ebp + edx*2 - 2]
mov dword [esp + 0x18], eax
lea esi, [ebp + esi*2]
cmp word [ebx], 0x25
je 0x45292e
mov ecx, 0x3dd
mov edi, edi
mov ax, word [ebx]
test ax, ax
je 0x452870
cmp ax, 0x25
je 0x452870
mov word [esi], ax
add ebx, 2
add esi, 2
dec ecx
mov dword [esp + 0x8c], ebx
jns 0x452900
jmp 0x452870
mov al, byte [esp + 0x98]
test al, al
mov dword [esp + 0x28], ebx
je 0x452c38
mov cx, word [ebx + 2]
cmp cx, 0x25
jne 0x452960
mov word [esi], cx
add esi, 2
add ebx, 4
mov dword [esp + 0x8c], ebx
jmp 0x452870
cmp cx, 0x23
jne 0x4529aa
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x38]
add ebx, 4
test eax, eax
mov dword [esp + 0x8c], ebx
je 0x452870
mov ecx, dword [ecx + 0x34]
mov ecx, dword [eax + ecx*4 + 8]
mov ax, word [ecx]
test ax, ax
je 0x452870
mov word [esi], ax
add ecx, 2
xor eax, eax
mov ax, word [ecx]
add esi, 2
test ax, ax
jne 0x452992
jmp 0x452870
cmp cx, 0x2a
jne 0x452a54
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x38]
add ebx, 4
test eax, eax
mov dword [esp + 0x8c], ebx
je 0x452870
mov edx, dword [ecx + 0x34]
mov eax, dword [eax + edx*4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [esp + 0x18]
mov ebx, eax
lea eax, [ebx + ebx + 4]
sub eax, ecx
add eax, esi
test eax, 0xfffffffe
jl 0x452a22
mov ecx, dword [esp + 0x94]
lea eax, [ecx + ebx + 0x10]
sub esi, ebp
push eax
mov ecx, edi
sar esi, 1
mov dword [esp + 0x98], eax
call fcn.004462b0
mov ebp, dword [edi]
mov edx, dword [esp + 0x94]
lea eax, [ebp + edx*2 - 2]
mov dword [esp + 0x18], eax
lea esi, [ebp + esi*2]
dec ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x38]
mov eax, dword [edx + ecx*4]
js 0x452870
lea ecx, [ebx + 1]
lea esp, [esp]
mov dx, word [eax]
mov word [esi], dx
add esi, 2
add eax, 2
dec ecx
jne 0x452a40
jmp 0x452870
cmp cx, 0x40
jne 0x452afa
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x38]
add ebx, 4
test eax, eax
mov dword [esp + 0x8c], ebx
je 0x452870
mov ecx, dword [ecx + 0x34]
mov eax, dword [eax + ecx*4 + 4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
mov eax, dword [esp + 0x18]
lea edx, [ebx + ebx + 4]
sub edx, eax
add edx, esi
test edx, 0xfffffffe
jl 0x452ace
mov eax, dword [esp + 0x94]
lea eax, [eax + ebx + 0x10]
sub esi, ebp
push eax
mov ecx, edi
sar esi, 1
mov dword [esp + 0x98], eax
call fcn.004462b0
mov ebp, dword [edi]
mov ecx, dword [esp + 0x94]
lea edx, [ebp + ecx*2 - 2]
mov dword [esp + 0x18], edx
lea esi, [ebp + esi*2]
dec ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x38]
mov eax, dword [edx + ecx*4 + 4]
js 0x452870
lea ecx, [ebx + 1]
mov dx, word [eax]
mov word [esi], dx
add esi, 2
add eax, 2
dec ecx
jne 0x452ae6
jmp 0x452870
mov eax, ecx
call fcn.00445b20
test al, al
jne 0x452b20
cmp cx, 0x7e
jb 0x452c38
mov ax, word [ebx + 4]
call fcn.00445b20
test al, al
je 0x452c38
cmp cx, 0x7e
mov dword [esp + 0x28], 0
jb 0x452b39
mov dword [esp + 0x28], 0x25
add ebx, 2
add ebx, 2
xor ecx, ecx
mov dword [esp + 0x8c], ebx
xor edi, edi
mov ax, word [ebx]
cmp ax, 0x30
jb 0x452b78
cmp ax, 0x39
ja 0x452b78
push 0
push 0xa
push edi
push ecx
call fcn.004b08b0
mov ecx, eax
movzx eax, word [ebx]
mov edi, edx
cdq
add ecx, eax
adc edi, edx
add ecx, 0xffffffd0
adc edi, 0xffffffff
add ebx, 2
jmp 0x452b47
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x34]
cdq
cmp edi, edx
ja 0x452870
jb 0x452b99
cmp ecx, eax
jae 0x452870
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x452870
mov edi, dword [eax + ecx*4]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x452bcb
cmp word [edi], 0x22
jne 0x452bcb
cmp word [edi + ebx*2 - 2], 0x22
jne 0x452bc7
dec ebx
dec ebx
add edi, 2
mov eax, dword [esp + 0x18]
lea edx, [ebx + ebx + 4]
sub edx, eax
add edx, esi
test edx, 0xfffffffe
jl 0x452c1a
mov eax, dword [esp + 0x94]
sub esi, ebp
mov ebp, dword [esp + 0x90]
lea eax, [eax + ebx + 0x10]
push eax
mov ecx, ebp
sar esi, 1
mov dword [esp + 0x98], eax
call fcn.004462b0
mov ebp, dword [ebp]
mov ecx, dword [esp + 0x94]
lea edx, [ebp + ecx*2 - 2]
mov dword [esp + 0x18], edx
lea esi, [ebp + esi*2]
dec ebx
js 0x452870
lea eax, [ebx + 1]
mov cx, word [edi]
mov word [esi], cx
add esi, 2
add edi, 2
dec eax
jne 0x452c24
jmp 0x452870
push 8
push str._RANDOM_
push ebx
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x452d24
add ebx, 0x10
mov dword [esp + 0x8c], ebx
mov word [esp + 0x3c], ax
call fcn.00441790
and edx, 0x7fffffff
push edx
push eax
push str._I64u
lea edx, [esp + 0x48]
push 0x28
push edx
call fcn.004c1f3f
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
add esp, 0x14
lea eax, [esp + 0x3c]
push eax
call ebx
lea ecx, [esp + 0x3c]
push ecx
mov word [esp + 0x7e], 0
call ebx
mov ebx, eax
cmp ebx, 1
jge 0x452ca2
xor ebx, ebx
mov eax, dword [esp + 0x18]
lea edx, [ebx + ebx + 4]
sub edx, eax
add edx, esi
test edx, 0xfffffffe
jl 0x452cfd
mov eax, dword [esp + 0x94]
mov ecx, dword [edi]
sub esi, ebp
sar esi, 1
mov dword [esp + 0x34], esi
lea esi, [eax + ebx + 0x10]
lea eax, [esi + esi + 2]
push ecx
mov dword [esp + 0x98], esi
call fcn.00445f60
add esp, 4
test eax, eax
mov dword [edi], eax
je 0x452ceb
mov word [eax + esi*2], 0
mov ebp, dword [edi]
mov eax, dword [esp + 0x34]
lea edx, [ebp + esi*2 - 2]
mov dword [esp + 0x18], edx
lea esi, [ebp + eax*2]
dec ebx
lea eax, [esp + 0x3c]
js 0x452870
lea ecx, [ebx + 1]
jmp 0x452d10
mov dx, word [eax]
mov word [esi], dx
add esi, 2
add eax, 2
dec ecx
jne 0x452d10
jmp 0x452870
add ebx, 2
mov eax, ebx
mov cx, word [eax]
test cx, cx
mov dword [esp + 0x8c], eax
je 0x452d57
cmp cx, 0x25
je 0x452d50
cmp cx, 0x3d
je 0x452d50
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x452d38
mov dword [esp + 0x8c], eax
mov edx, dword [esp + 0x28]
mov ecx, eax
sub ecx, edx
sar ecx, 1
cmp word [eax], 0x25
mov dword [esp + 0x28], ecx
movsx ecx, byte [esp + 0x14]
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], edx
mov byte [esp + 0x13], 0
mov dword [esp + 0x34], ecx
jne 0x452fad
mov al, byte [esp + 0x16]
test al, al
jne 0x452dd3
mov ax, word [ebx]
cmp ax, 0x26
je 0x452da4
mov cl, byte [esp + 0x14]
test cl, cl
je 0x452dd3
cmp ax, 0x5e
je 0x452dd3
mov ecx, dword [esp + 0x8c]
add ecx, 2
cmp word [ebx], 0x26
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x30], ebx
jne 0x452eae
add ebx, 2
mov dword [esp + 0x34], 1
jmp 0x452eae
mov edx, dword [esp + 0x8c]
mov eax, 2
add edx, eax
cmp word [ebx], 0x5e
mov dword [esp + 0x8c], edx
jne 0x452e00
mov ecx, edx
add ebx, eax
add ecx, eax
mov dword [esp + 0x8c], ecx
mov byte [esp + 0x13], 8
mov dword [esp + 0x30], ebx
mov al, byte [esp + 0x15]
test al, al
mov edx, dword [esp + 0x20]
mov word [edx], 0
jne 0x452e91
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
push ecx
push edx
push ebx
mov word [eax], 0
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov edi, eax
test edi, edi
jle 0x452e6f
mov eax, dword [esp + 0x20]
cmp word [eax], 0
jne 0x452e6f
add edi, 0x64
push edi
lea ecx, [esp + 0x24]
mov dword [esp + 0x30], edi
call fcn.004462b0
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esp + 0x20]
push edi
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov edi, eax
mov edx, dword [esp + 0x24]
mov word [edx], 0x25
call dword [sym.imp.KERNEL32.dll_GetLastError]
test edi, edi
jg 0x453064
cmp eax, 0xcb
jne 0x453064
mov al, byte [esp + 0x13]
test al, al
jne 0x452f81
mov al, byte [esp + 0x16]
test al, al
mov byte [esp + 0x13], 1
jne 0x452f81
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
push 0xffffffffffffffff
push 0
push eax
mov word [edi], 0
call fcn.00422a90
test eax, eax
mov word [edi], 0x25
jne 0x452ef4
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x452870
mov al, byte [esp + 0x13]
test al, al
jne 0x452f74
mov byte [esp + 0x13], 1
jmp 0x452e04
mov ebx, dword [eax]
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
mov eax, dword [esp + 0x18]
lea ecx, [edi + edi + 4]
sub ecx, eax
add ecx, esi
test ecx, 0xfffffffe
jl 0x452f4e
mov edx, dword [esp + 0x94]
sub esi, ebp
mov ebp, dword [esp + 0x90]
lea eax, [edx + edi + 0x10]
push eax
mov ecx, ebp
sar esi, 1
mov dword [esp + 0x98], eax
call fcn.004462b0
mov ebp, dword [ebp]
mov eax, dword [esp + 0x94]
lea ecx, [ebp + eax*2 - 2]
mov dword [esp + 0x18], ecx
lea esi, [ebp + esi*2]
dec edi
js 0x452870
lea eax, [edi + 1]
jmp 0x452f60
mov dx, word [ebx]
mov word [esi], dx
add esi, 2
add ebx, 2
dec eax
jne 0x452f60
jmp 0x452870
cmp byte [esp + 0x14], 1
je 0x452870
jmp 0x452fa5
cmp byte [esp + 0x14], 1
jne 0x452f90
xor al, al
je 0x452870
mov edx, dword [esp + 0x8c]
sub edx, 2
xor al, al
mov dword [esp + 0x8c], edx
je 0x452fad
sub dword [esp + 0x8c], 2
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
lea eax, [ebx + ebx + 6]
sub eax, edi
add eax, esi
test eax, 0xfffffffe
jl 0x452ff8
mov ecx, dword [esp + 0x94]
sub esi, ebp
mov ebp, dword [esp + 0x90]
lea edi, [ecx + ebx + 0x11]
push edi
mov ecx, ebp
sar esi, 1
mov dword [esp + 0x98], edi
call fcn.004462b0
mov ebp, dword [ebp]
lea edx, [ebp + edi*2 - 2]
mov dword [esp + 0x18], edx
lea esi, [ebp + esi*2]
mov ecx, dword [esp + 0x8c]
cmp word [ecx], 0x25
jne 0x45303b
mov ax, word [ecx + 2]
cmp ax, 0x25
je 0x453030
cmp ax, 0x2a
je 0x453030
cmp ax, 0x40
je 0x453030
cmp ax, 0x23
je 0x453030
cmp ax, 0x7e
je 0x453030
call fcn.00445b20
test al, al
je 0x45303b
add ecx, 2
mov dword [esp + 0x8c], ecx
inc ebx
dec ebx
mov dword [esp + 0x28], ebx
js 0x452870
mov eax, dword [esp + 0x38]
mov ecx, ebx
inc ecx
lea ecx, [ecx]
mov dx, word [eax]
mov word [esi], dx
add esi, 2
add eax, 2
dec ecx
jne 0x453050
jmp 0x452870
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x453098
mov eax, dword [esp + 0x1c]
mov cl, byte [eax + 0x8a]
test cl, cl
jne 0x453098
mov ecx, dword [esp + 0x20]
push 0x25
push ecx
call dword [sym.imp.SHLWAPI.dll_StrChrW]
test eax, eax
je 0x453098
mov edx, dword [esp + 0x9c]
mov byte [edx], 1
test edi, edi
jle 0x4530a1
mov byte [esp + 0x17], 1
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
lea ecx, [edi + edi + 4]
sub ecx, edx
add ecx, esi
test ecx, 0xfffffffe
mov dword [esp + 0x28], eax
jl 0x4530f5
mov edx, dword [esp + 0x94]
sub esi, ebp
mov ebp, dword [esp + 0x90]
lea ebx, [edx + edi + 0x10]
push ebx
mov ecx, ebp
sar esi, 1
mov dword [esp + 0x98], ebx
call fcn.004462b0
mov ebp, dword [ebp]
lea eax, [ebp + ebx*2 - 2]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
lea esi, [ebp + esi*2]
dec edi
js 0x452870
inc edi
lea ecx, [ecx]
mov cx, word [eax]
mov word [esi], cx
add esi, 2
add eax, 2
dec edi
jne 0x453100
jmp 0x452870
mov al, byte [esp + 0x17]
test al, al
mov word [esi], 0
jne 0x45313d
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x45313d
mov edx, dword [esp + 0x1c]
mov cl, byte [edx + 0x8a]
test cl, cl
jne 0x45313d
mov byte [eax], 1
mov edi, dword [esp + 0x90]
mov ecx, dword [edi]
sub esi, ebp
sar esi, 1
lea eax, [esi + esi + 6]
push ecx
call fcn.00445f60
add esp, 4
test eax, eax
mov dword [edi], eax
je 0x453164
mov word [eax + esi*2 + 4], 0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x45317f
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [esp + 0x7c]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x78
ret 0x14