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

Disassembly:
push ebp
lea ebp, [esp - 0x64]
sub esp, 0x8c
mov al, byte [ecx + 0xb]
push ebx
push esi
push edi
mov edi, dword [ebp + 0x74]
test edi, edi
setl byte [ebp + 0x57]
and al, 0x11
cmp byte [ebp + 0x57], 0
mov dword [ebp + 0x48], ecx
mov byte [ebp + 0x63], al
jne 0x43a884
test byte [ebp + 0x78], 0x80
je 0x43a888
mov byte [ebp + 0x63], 0
mov eax, dword [ebp + 0x7c]
and byte [ebp + 0x78], 1
test eax, eax
mov byte [ebp + 0x46], 0
mov byte [ebp + 0x47], 0
je 0x43a8a0
mov al, byte [eax]
mov byte [ebp + 0x47], al
push 0x50
pop eax
push eax
lea ecx, [ebp + 0x40]
mov dword [ebp + 0x34], eax
call fcn.00432cd5
mov eax, 0x400
cmp edi, eax
jge 0x43a8c3
mov ecx, dword [ebp + 0x70]
push eax
mov edi, eax
call fcn.00432cfe
mov eax, dword [ebp + 0x70]
mov esi, dword [eax]
lea eax, [esi + edi*2 - 2]
mov dword [ebp + 0x58], eax
mov ebx, esi
mov dword [ebp + 0x5c], ebx
mov eax, dword [ebp + 0x58]
cmp ebx, eax
jae 0x43b02c
mov edx, dword [ebp + 0x6c]
cmp word [edx], 0
je 0x43b02c
add eax, 0xfffff81c
mov ecx, ebx
sub ecx, eax
test ecx, 0xfffffffe
jl 0x43a925
mov ecx, dword [ebp + 0x70]
add edi, 0x400
sub ebx, esi
push edi
sar ebx, 1
call fcn.00432cfe
mov eax, dword [ebp + 0x70]
mov esi, dword [eax]
mov edx, dword [ebp + 0x6c]
lea eax, [esi + edi*2 - 2]
lea ebx, [esi + ebx*2]
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], ebx
cmp word [edx], 0x25
je 0x43a950
mov ecx, 0x3dd
mov ax, word [edx]
test ax, ax
je 0x43a8d4
cmp ax, 0x25
je 0x43a8d4
mov word [ebx], ax
inc ebx
inc ebx
inc edx
inc edx
dec ecx
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x6c], edx
jns 0x43a930
jmp 0x43a8d4
cmp byte [ebp + 0x78], 0
mov dword [ebp + 0x50], edx
je 0x43ac3f
lea eax, [edx + 2]
mov cx, word [eax]
cmp cx, 0x25
mov dword [ebp + 0x74], eax
jne 0x43a97c
mov word [ebx], cx
inc ebx
inc ebx
add edx, 4
mov dword [ebp + 0x6c], edx
jmp 0x43a8d1
cmp cx, 0x23
jne 0x43a9bf
mov ecx, dword [ebp + 0x48]
mov eax, dword [ecx + 0x40]
add edx, 4
test eax, eax
mov dword [ebp + 0x6c], edx
je 0x43a8d4
mov ecx, dword [ecx + 0x3c]
mov eax, dword [eax + ecx*4 + 8]
mov cx, word [eax]
test cx, cx
je 0x43a8d4
mov word [ebx], cx
inc ebx
inc ebx
inc eax
inc eax
xor ecx, ecx
mov cx, word [eax]
test cx, cx
jne 0x43a9a9
jmp 0x43a8d1
cmp cx, 0x2a
jne 0x43aa50
mov eax, dword [ebp + 0x48]
mov eax, dword [eax + 0x40]
add edx, 4
test eax, eax
mov dword [ebp + 0x6c], edx
je 0x43a8d4
mov ecx, dword [ebp + 0x48]
mov ecx, dword [ecx + 0x3c]
push dword [eax + ecx*4]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp + 0x74], eax
lea eax, [eax + eax + 4]
sub eax, dword [ebp + 0x58]
add eax, ebx
test eax, 0xfffffffe
jl 0x43aa25
mov eax, dword [ebp + 0x74]
mov ecx, dword [ebp + 0x70]
lea edi, [edi + eax + 0x10]
sub ebx, esi
push edi
sar ebx, 1
call fcn.00432cfe
mov eax, dword [ebp + 0x70]
mov esi, dword [eax]
lea eax, [esi + edi*2 - 2]
lea ebx, [esi + ebx*2]
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], ebx
dec dword [ebp + 0x74]
mov eax, dword [ebp + 0x48]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + ecx*4]
js 0x43a8d4
mov ecx, dword [ebp + 0x74]
inc ecx
mov dx, word [eax]
mov word [ebx], dx
inc ebx
inc ebx
inc eax
inc eax
dec ecx
jne 0x43aa3e
jmp 0x43a8d1
cmp cx, 0x40
jne 0x43aae3
mov eax, dword [ebp + 0x48]
mov eax, dword [eax + 0x40]
add edx, 4
test eax, eax
mov dword [ebp + 0x6c], edx
je 0x43a8d4
mov ecx, dword [ebp + 0x48]
mov ecx, dword [ecx + 0x3c]
push dword [eax + ecx*4 + 4]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp + 0x74], eax
lea eax, [eax + eax + 4]
sub eax, dword [ebp + 0x58]
add eax, ebx
test eax, 0xfffffffe
jl 0x43aab7
mov eax, dword [ebp + 0x74]
mov ecx, dword [ebp + 0x70]
lea edi, [edi + eax + 0x10]
sub ebx, esi
push edi
sar ebx, 1
call fcn.00432cfe
mov eax, dword [ebp + 0x70]
mov esi, dword [eax]
lea eax, [esi + edi*2 - 2]
lea ebx, [esi + ebx*2]
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], ebx
dec dword [ebp + 0x74]
mov eax, dword [ebp + 0x48]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + ecx*4 + 4]
js 0x43a8d4
mov ecx, dword [ebp + 0x74]
inc ecx
mov dx, word [eax]
mov word [ebx], dx
inc ebx
inc ebx
inc eax
inc eax
dec ecx
jne 0x43aad1
jmp 0x43a8d1
push ecx
call fcn.0041030b
add esp, 4
test al, al
jne 0x43ab11
cmp cx, 0x7e
jb 0x43ac3f
xor eax, eax
mov ax, word [edx + 4]
push eax
call fcn.0041030b
add esp, 4
test al, al
je 0x43ac3f
and dword [ebp + 0x3c], 0
cmp cx, 0x7e
jb 0x43ab25
mov edx, dword [ebp + 0x74]
mov dword [ebp + 0x3c], 0x25
inc edx
inc edx
mov dword [ebp + 0x6c], edx
movzx edx, word [edx]
xor ecx, ecx
and dword [ebp + 0x28], ecx
push edx
mov dword [ebp + 0x74], edx
call fcn.0041030b
add esp, 4
test al, al
je 0x43ab82
push 0
push 0xa
push dword [ebp + 0x28]
push ecx
call fcn.00479e00
mov ecx, eax
movzx eax, word [ebp + 0x74]
mov ebx, edx
cdq
add ecx, eax
adc ebx, edx
add ecx, 0xffffffd0
adc ebx, 0xffffffff
add dword [ebp + 0x6c], 2
mov eax, dword [ebp + 0x6c]
movzx eax, word [eax]
push eax
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x74], eax
call fcn.0041030b
add esp, 4
test al, al
jne 0x43ab42
mov ebx, dword [ebp + 0x5c]
mov eax, dword [ebp + 0x48]
mov eax, dword [eax + 0x3c]
cdq
cmp dword [ebp + 0x28], edx
mov dword [ebp + 0x18], eax
ja 0x43a8d4
jb 0x43ab9f
cmp ecx, eax
jae 0x43a8d4
mov eax, dword [ebp + 0x48]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x43a8d4
mov eax, dword [eax + ecx*4]
push eax
mov dword [ebp + 0x4c], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp dword [ebp + 0x3c], 0
mov dword [ebp + 0x74], eax
je 0x43abe2
mov eax, dword [ebp + 0x4c]
cmp word [eax], 0x22
jne 0x43abe2
mov ecx, dword [ebp + 0x74]
cmp word [eax + ecx*2 - 2], 0x22
jne 0x43abda
dec dword [ebp + 0x74]
dec dword [ebp + 0x74]
inc eax
inc eax
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x74]
lea eax, [eax + eax + 4]
sub eax, dword [ebp + 0x58]
add eax, ebx
test eax, 0xfffffffe
jl 0x43ac1b
mov eax, dword [ebp + 0x74]
mov ecx, dword [ebp + 0x70]
lea edi, [edi + eax + 0x10]
sub ebx, esi
push edi
sar ebx, 1
call fcn.00432cfe
mov eax, dword [ebp + 0x70]
mov esi, dword [eax]
lea eax, [esi + edi*2 - 2]
lea ebx, [esi + ebx*2]
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], ebx
dec dword [ebp + 0x74]
js 0x43a8d4
mov eax, dword [ebp + 0x74]
inc eax
mov ecx, dword [ebp + 0x4c]
mov cx, word [ecx]
add dword [ebp + 0x4c], 2
mov word [ebx], cx
inc ebx
inc ebx
dec eax
jne 0x43ac28
jmp 0x43a8d1
push 8
push str._RANDOM_
push dword [ebp + 0x6c]
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x43acee
add dword [ebp + 0x6c], 0x10
and word [ebp - 0x28], ax
call fcn.0042fa40
and edx, 0x7fffffff
push edx
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0046f8bf
and word [ebp + 0x16], 0
add esp, 0xc
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 1
mov dword [ebp + 0x74], eax
jge 0x43ac93
and dword [ebp + 0x74], 0
mov eax, dword [ebp + 0x74]
lea eax, [eax + eax + 4]
sub eax, dword [ebp + 0x58]
add eax, ebx
test eax, 0xfffffffe
jl 0x43accc
mov eax, dword [ebp + 0x74]
mov ecx, dword [ebp + 0x70]
lea edi, [edi + eax + 0x10]
sub ebx, esi
push edi
sar ebx, 1
call fcn.00432cfe
mov eax, dword [ebp + 0x70]
mov esi, dword [eax]
lea eax, [esi + edi*2 - 2]
lea ebx, [esi + ebx*2]
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], ebx
dec dword [ebp + 0x74]
lea eax, [ebp - 0x28]
js 0x43a8d4
mov ecx, dword [ebp + 0x74]
inc ecx
mov dx, word [eax]
mov word [ebx], dx
inc ebx
inc ebx
inc eax
inc eax
dec ecx
jne 0x43acdc
jmp 0x43a8d1
mov edx, dword [ebp + 0x6c]
add edx, 2
mov eax, edx
jmp 0x43ad06
cmp cx, 0x25
je 0x43ad11
cmp cx, 0x3d
je 0x43ad11
inc eax
inc eax
mov cx, word [eax]
test cx, cx
mov dword [ebp + 0x6c], eax
jne 0x43acf8
mov ecx, dword [ebp + 0x50]
mov dword [ebp + 0x20], ecx
mov ecx, eax
sub ecx, dword [ebp + 0x50]
mov dword [ebp + 0x38], eax
sar ecx, 1
cmp word [eax], 0x25
mov dword [ebp + 0x3c], ecx
movsx ecx, byte [ebp + 0x63]
mov byte [ebp + 0x77], 0
mov dword [ebp + 0x30], ecx
jne 0x43af04
cmp byte [ebp + 0x57], 0
jne 0x43ad7b
mov ax, word [edx]
cmp ax, 0x26
je 0x43ad54
cmp byte [ebp + 0x63], 0
je 0x43ad7b
cmp ax, 0x5e
je 0x43ad7b
add dword [ebp + 0x6c], 2
mov eax, edx
cmp word [eax], 0x26
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x2c], eax
jne 0x43ae3c
inc eax
inc eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x30], 1
jmp 0x43ae3c
add dword [ebp + 0x6c], 2
mov eax, edx
cmp word [eax], 0x5e
mov dword [ebp + 0x50], eax
jne 0x43ad97
inc eax
inc eax
add dword [ebp + 0x6c], 2
mov dword [ebp + 0x50], eax
mov byte [ebp + 0x77], 8
mov dword [ebp + 0x2c], eax
mov eax, dword [ebp + 0x40]
and word [eax], 0
cmp byte [ebp + 0x47], 0
jne 0x43ae24
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [ebp + 0x34]
mov eax, dword [ebp + 0x38]
push dword [ebp + 0x40]
and word [eax], 0
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
mov dword [ebp + 0x4c], eax
jle 0x43ae01
mov eax, dword [ebp + 0x40]
cmp word [eax], 0
jne 0x43ae01
mov eax, dword [ebp + 0x4c]
add eax, 0x64
push eax
lea ecx, [ebp + 0x40]
mov dword [ebp + 0x34], eax
call fcn.00432cfe
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [ebp + 0x34]
push dword [ebp + 0x40]
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x38]
mov word [eax], 0x25
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp + 0x4c], 0
jg 0x43af9c
cmp eax, 0xcb
jne 0x43af9c
cmp byte [ebp + 0x77], 0
jne 0x43aeea
cmp byte [ebp + 0x57], 0
mov byte [ebp + 0x77], 1
jne 0x43aeea
mov eax, dword [ebp + 0x38]
mov ecx, dword [ebp + 0x48]
and word [eax], 0
push 0xffffffffffffffff
push 0
push dword [ebp + 0x2c]
call fcn.0041065a
test eax, eax
mov ecx, dword [ebp + 0x38]
mov word [ecx], 0x25
jne 0x43ae75
cmp dword [ebp + 0x30], eax
jne 0x43a8d4
cmp byte [ebp + 0x77], al
jne 0x43aede
mov byte [ebp + 0x77], 1
jmp 0x43ad9a
mov eax, dword [eax]
push eax
mov dword [ebp + 0x50], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp + 0x74], eax
lea eax, [eax + eax + 4]
sub eax, dword [ebp + 0x58]
add eax, ebx
test eax, 0xfffffffe
jl 0x43aeba
mov eax, dword [ebp + 0x74]
mov ecx, dword [ebp + 0x70]
lea edi, [edi + eax + 0x10]
sub ebx, esi
push edi
sar ebx, 1
call fcn.00432cfe
mov eax, dword [ebp + 0x70]
mov esi, dword [eax]
lea eax, [esi + edi*2 - 2]
lea ebx, [esi + ebx*2]
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], ebx
dec dword [ebp + 0x74]
js 0x43a8d4
mov eax, dword [ebp + 0x74]
inc eax
mov ecx, dword [ebp + 0x50]
mov cx, word [ecx]
add dword [ebp + 0x50], 2
mov word [ebx], cx
inc ebx
inc ebx
dec eax
jne 0x43aec7
jmp 0x43a8d1
cmp byte [ebp + 0x63], 1
je 0x43a8d4
jmp 0x43af00
cmp byte [ebp + 0x63], 1
jne 0x43aef8
xor al, al
je 0x43a8d4
sub dword [ebp + 0x6c], 2
xor al, al
je 0x43af04
sub dword [ebp + 0x6c], 2
mov edx, dword [ebp + 0x3c]
lea eax, [edx + edx + 6]
sub eax, dword [ebp + 0x58]
add eax, ebx
test eax, 0xfffffffe
jl 0x43af3f
mov ecx, dword [ebp + 0x70]
mov eax, edx
lea edi, [edi + eax + 0x11]
sub ebx, esi
push edi
sar ebx, 1
call fcn.00432cfe
mov eax, dword [ebp + 0x70]
mov esi, dword [eax]
mov edx, dword [ebp + 0x3c]
lea eax, [esi + edi*2 - 2]
lea ebx, [esi + ebx*2]
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], ebx
mov eax, dword [ebp + 0x6c]
cmp word [eax], 0x25
jne 0x43af7d
lea ecx, [eax + 2]
mov ax, word [ecx]
cmp ax, 0x25
je 0x43af79
cmp ax, 0x2a
je 0x43af79
cmp ax, 0x40
je 0x43af79
cmp ax, 0x23
je 0x43af79
cmp ax, 0x7e
je 0x43af79
push eax
call fcn.0041030b
add esp, 4
test al, al
je 0x43af7d
mov dword [ebp + 0x6c], ecx
inc edx
dec edx
js 0x43a8d4
mov eax, dword [ebp + 0x20]
lea ecx, [edx + 1]
mov dx, word [eax]
mov word [ebx], dx
inc ebx
inc ebx
inc eax
inc eax
dec ecx
jne 0x43af8a
jmp 0x43a8d1
cmp dword [ebp + 0x7c], 0
je 0x43afc3
mov eax, dword [ebp + 0x48]
cmp byte [eax + 0x96], 0
jne 0x43afc3
push 0x25
push dword [ebp + 0x40]
call dword [sym.imp.SHLWAPI.dll_StrChrW]
test eax, eax
je 0x43afc3
mov eax, dword [ebp + 0x7c]
mov byte [eax], 1
mov eax, dword [ebp + 0x4c]
test eax, eax
jle 0x43afce
mov byte [ebp + 0x46], 1
mov ecx, dword [ebp + 0x40]
lea eax, [eax + eax + 4]
sub eax, dword [ebp + 0x58]
mov dword [ebp + 0x50], ecx
add eax, ebx
test eax, 0xfffffffe
jl 0x43b00a
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x70]
lea edi, [edi + eax + 0x10]
sub ebx, esi
push edi
sar ebx, 1
call fcn.00432cfe
mov eax, dword [ebp + 0x70]
mov esi, dword [eax]
lea eax, [esi + edi*2 - 2]
lea ebx, [esi + ebx*2]
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], ebx
dec dword [ebp + 0x4c]
js 0x43a8d4
mov ecx, dword [ebp + 0x4c]
mov eax, dword [ebp + 0x50]
inc ecx
mov dx, word [eax]
mov word [ebx], dx
inc ebx
inc ebx
inc eax
inc eax
dec ecx
jne 0x43b01a
jmp 0x43a8d1
and word [ebx], 0
cmp byte [ebp + 0x46], 0
jne 0x43b04c
mov eax, dword [ebp + 0x7c]
test eax, eax
je 0x43b04c
mov ecx, dword [ebp + 0x48]
cmp byte [ecx + 0x96], 0
jne 0x43b04c
mov byte [eax], 1
mov ecx, dword [ebp + 0x70]
sub ebx, esi
sar ebx, 1
lea eax, [ebx + 2]
push eax
call fcn.00432cfe
lea ecx, [ebp + 0x40]
call fcn.0042dd2d
pop edi
pop esi
mov eax, ebx
pop ebx
add ebp, 0x64
leave
ret 0x14