Function at 0x401530
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4daa66
mov eax, dword fs:[0]
push eax
sub esp, 0x238
mov eax, dword [0x54d158]
xor eax, esp
mov dword [esp + 0x230], eax
push ebx
push esi
push edi
mov eax, dword [0x54d158]
xor eax, esp
push eax
lea eax, [esp + 0x248]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
xor esi, esi
push esi
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call fcn.004a1cba
test eax, eax
jne 0x4015b1
push str.Fail_to_initialize_MFC_module._n
call fcn.004accd0
add eax, 0x40
push eax
call fcn.004acc3c
add esp, 8
lea eax, [esi + 1]
jmp 0x4018c1
mov ebx, dword [ebp + 8]
cmp ebx, 1
mov dword [esp + 0x18], esi
jle 0x401838
call fcn.004a08e6
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x4015db
push 0x80004005
call fcn.004103e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x14], edi
mov dword [esp + 0x250], esi
call fcn.004a08e6
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x40160c
push 0x80004005
call fcn.004103e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
mov esi, 1
cmp ebx, esi
mov byte [esp + 0x250], 1
jle 0x401763
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + esi*4]
test edx, edx
jne 0x401640
xor eax, eax
jmp 0x401654
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401645
sub eax, edi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x1c]
call fcn.0040fe70
add esi, 1
cmp esi, ebx
mov dword [esp + 0x1c], esi
jge 0x40175f
mov edx, dword [esp + 0x20]
mov edx, dword [edx + esi*4]
test edx, edx
jne 0x40167d
xor eax, eax
jmp 0x401691
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401682
sub eax, edi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x18]
call fcn.0040fe70
mov edi, dword [esp + 0x14]
push 0x51b918
push edi
call fcn.004ad47d
add esp, 8
test eax, eax
jne 0x401712
mov ebx, dword [esp + 0x10]
push 0x51b920
push ebx
call fcn.004ad47d
add esp, 8
test eax, eax
je 0x401708
push 0x51b92c
push ebx
call fcn.004ad47d
add esp, 8
test eax, eax
je 0x401708
push 0x51b930
push ebx
call fcn.004ad47d
add esp, 8
test eax, eax
je 0x4016fe
push 0x51b93c
push ebx
call fcn.004ad47d
add esp, 8
test eax, eax
jne 0x40174f
mov dword [esp + 0x18], 0xffffffff
jmp 0x40174f
mov dword [esp + 0x18], 1
jmp 0x40174f
push 0x51b940
push edi
call fcn.004ad47d
add esp, 8
test eax, eax
jne 0x40172b
mov esi, 0x5548c4
jmp 0x401742
push str._httpsp
push edi
call fcn.004ad47d
add esp, 8
test eax, eax
jne 0x40174f
mov esi, 0x5548b4
lea ebx, [esp + 0x10]
call fcn.0040de40
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add esi, 1
cmp esi, ebx
jl 0x401631
jmp 0x401763
mov edi, dword [esp + 0x14]
mov byte [esp + 0x250], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40178b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov dword [esp + 0x250], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4017b2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
cmp eax, 1
jne 0x401815
call fcn.004a281a
mov eax, dword [eax + 8]
push 0x104
lea ecx, [esp + 0x38]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push ecx
lea edx, [esp + 0x38]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.00410140
call fcn.00403430
add esp, 4
test eax, eax
je 0x4017f8
push 0x51b958
jmp 0x4017fd
push 0x51b970
call fcn.004accd0
add eax, 0x40
push eax
call fcn.004acc3c
add esp, 8
call fcn.004039d0
jmp 0x401875
cmp eax, 0xffffffff
jne 0x401836
call fcn.00404070
call fcn.00403740
test eax, eax
je 0x40182f
push 0x51b988
jmp 0x401864
push 0x51b9a0
jmp 0x401864
xor esi, esi
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], 0x51b9b8
mov dword [esp + 0x2c], 0x402be0
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
call dword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherW]
test eax, eax
je 0x401875
push 0x51b9c8
call fcn.004accd0
add eax, 0x40
push eax
call fcn.004acc3c
add esp, 8
mov eax, dword [0x54fa4c]
cmp eax, 0xffffffff
je 0x401886
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x5548d8]
mov edi, dword [ecx]
mov edi, edi
cmp edi, dword [0x5548d8]
je 0x4018bf
mov esi, dword [edi + 8]
test esi, esi
je 0x4018ae
push esi
call fcn.0040d1d0
push esi
call fcn.004a08dc
add esp, 4
cmp edi, dword [0x5548d8]
jne 0x4018bb
call fcn.004ad638
mov edi, dword [edi]
jmp 0x401890
xor eax, eax
mov ecx, dword [esp + 0x248]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x230]
xor ecx, esp
call fcn.004ac89d
mov esp, ebp
pop ebp
ret