Function at 0x403910
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4106a8
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
mov eax, dword [0x416008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call dword [sym.imp.KERNEL32.dll_GetThreadUILanguage]
and eax, 0x3ff
add eax, 0xfffffffc
cmp eax, 0xc
ja case.0x403957.5
movzx eax, byte [eax + 0x403f08]
jmp dword [eax*4 + 0x403f00]
push 9
call dword [sym.imp.KERNEL32.dll_SetThreadUILanguage]
push 6
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov ecx, 0x416038
call fcn.00402650
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 7
mov word [ebp - 0x60], ax
mov dword [ebp - 4], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
push 0x40
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
call fcn.00409768
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 7
mov word [ebp - 0x48], ax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x94]
push 1
mov dword [ebp - 0x94], eax
push str.:__
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], 7
mov word [ebp - 0x94], ax
call fcn.00404540
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x7c]
push 1
xor eax, eax
mov dword [ebp - 0x7c], 0
push 0x4127ac
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 7
mov word [ebp - 0x7c], ax
call fcn.00404540
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 4
push ecx
lea eax, [ebp - 0x64]
push eax
push ecx
lea ecx, [ebp - 0xf4]
call fcn.00403f30
mov esi, eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xdc]
push 1
xor eax, eax
mov dword [ebp - 0xdc], 0
push 0x4127b0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 7
mov word [ebp - 0xdc], ax
call fcn.00404540
mov byte [ebp - 4], 6
xor eax, eax
push 1
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 7
mov word [ebp - 0xc4], ax
push 0x4127b4
lea ecx, [ebp - 0xc4]
call fcn.00404540
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xac]
push 2
xor eax, eax
mov dword [ebp - 0xac], 0
push 0x4127b8
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 7
mov word [ebp - 0xac], ax
call fcn.00404540
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 8
push ecx
lea eax, [ebp - 0x94]
push eax
push ecx
lea ecx, [ebp - 0xe8]
call fcn.00403f30
mov edi, eax
mov byte [ebp - 4], 9
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov edx, eax
mov dword [ebp - 0x30], 0
mov ecx, edx
mov dword [ebp - 0x20], 0
xor eax, eax
mov dword [ebp - 0x1c], 7
mov word [ebp - 0x30], ax
lea eax, [ecx + 2]
mov dword [ebp - 0x64], eax
jmp 0x403b60
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403b60
sub ecx, dword [ebp - 0x64]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x30]
call fcn.00404540
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x18]
mov edx, edi
push eax
lea eax, [ebp - 0x60]
push eax
push esi
lea ecx, [ebp - 0x30]
call fcn.004076a0
mov byte [ebp - 4], 9
add esp, 0x10
mov edx, dword [ebp - 0x1c]
cmp edx, 8
jb 0x403bd6
mov ecx, dword [ebp - 0x30]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403bcc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403ee9
push edx
push ecx
call fcn.00409afe
add esp, 8
xor eax, eax
mov dword [ebp - 0x20], 0
lea ecx, [ebp - 0xe8]
mov dword [ebp - 0x1c], 7
mov word [ebp - 0x30], ax
call fcn.004044c0
push 0x404270
push 3
push 0x18
lea eax, [ebp - 0xdc]
mov byte [ebp - 4], 5
push eax
call fcn.00409798
lea ecx, [ebp - 0xf4]
call fcn.004044c0
push 0x404270
push 2
push 0x18
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 2
push eax
call fcn.00409798
mov eax, dword [0x41608c]
mov edi, dword [eax]
mov dword [ebp - 0x64], edi
mov esi, dword [edi + 4]
cmp byte [esi + 0xd], 0
jne 0x403c65
lea ecx, [ebp - 0x48]
lea eax, [esi + 0x10]
push ecx
push eax
call fcn.00405a60
test al, al
je 0x403c5b
mov esi, dword [esi + 8]
jmp 0x403c5f
mov edi, esi
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
je 0x403c45
cmp byte [edi + 0xd], 0
jne 0x403c86
lea eax, [edi + 0x10]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00405a60
test al, al
jne 0x403c86
cmp edi, dword [ebp - 0x64]
je 0x403c86
add edi, 0x28
jmp 0x403c89
lea edi, [ebp - 0x48]
push edi
lea ecx, [ebp - 0x30]
call fcn.00404370
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x48]
call fcn.004042d0
mov edx, dword [ebp - 0x1c]
cmp edx, 8
jb 0x403cd8
mov ecx, dword [ebp - 0x30]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403cce
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403ef8
push edx
push ecx
call fcn.00409afe
add esp, 8
cmp dword [ebp - 0x14], 0
jne 0x403ce8
cmp dword [ebp - 0x38], 0
je 0x403e39
lea eax, [ebp - 0x48]
push eax
lea edx, [ebp - 0x18]
call fcn.00402ae0
add esp, 4
cmp eax, 5
je 0x403e39
cmp eax, 6
jne 0x403d94
sub esp, 0x18
mov ecx, esp
push 0x11
push str.NSudo.VersionText
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.004046a0
lea eax, [ebp - 0x30]
mov ecx, 0x416038
push eax
call fcn.00402a20
mov byte [ebp - 4], 0xb
cmp dword [eax + 0x14], 8
jb 0x403d48
mov eax, dword [eax]
push eax
call fcn.004031a0
mov edx, dword [ebp - 0x1c]
add esp, 4
cmp edx, 8
jb 0x403e3e
mov ecx, dword [ebp - 0x30]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403d85
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403eee
push edx
push ecx
call fcn.00409afe
add esp, 8
jmp 0x403e3e
test eax, eax
je 0x403e3e
mov esi, dword [eax*4 + 0x4127d0]
sub esp, 0x18
mov edx, esp
mov ecx, esi
mov dword [edx], 0
lea edi, [ecx + 1]
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403dc1
sub ecx, edi
push ecx
push esi
mov ecx, edx
call fcn.004046a0
lea eax, [ebp - 0x30]
mov ecx, 0x416038
push eax
call fcn.00402a20
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x30]
cmp dword [ebp - 0x1c], 8
jb 0x403df1
mov eax, dword [ebp - 0x30]
push eax
call fcn.004031a0
mov edx, dword [ebp - 0x1c]
add esp, 4
cmp edx, 8
jb 0x403e34
mov ecx, dword [ebp - 0x30]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403e2a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403ef3
push edx
push ecx
call fcn.00409afe
add esp, 8
or esi, 0xffffffff
jmp 0x403e40
call fcn.004035d0
xor esi, esi
mov edx, dword [ebp - 0x34]
cmp edx, 8
jb 0x403e7a
mov ecx, dword [ebp - 0x48]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403e70
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403ef8
push edx
push ecx
call fcn.00409afe
add esp, 8
xor eax, eax
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x34], 7
mov word [ebp - 0x48], ax
call fcn.004040f0
mov edx, dword [ebp - 0x4c]
cmp edx, 8
jb 0x403ecc
mov ecx, dword [ebp - 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403ec2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403ef8
push edx
push ecx
call fcn.00409afe
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040975a
mov esp, ebp
pop ebp
ret
call fcn.0040a5e0
call fcn.0040a5e0
call fcn.0040a5e0
call fcn.0040a5e0
lea ecx, [ecx]
cmp word [eax], ax
pop esi
cmp dword [eax], eax
add byte [ecx], al
add dword [eax], eax
add dword [eax], eax
add byte [ecx], al
add byte [ecx], al
add dword [ecx], eax
add ah, cl
int3