Function at 0x4127a0
Capabilities:
Accept command line arguments
Contain obfuscated stackstrings
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x26c
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea edx, [ebp - 0x244]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
sub esp, 8
test eax, eax
je 0x413779
cmp dword [ebp - 0x244], 1
lea edi, [ebp - 0x238]
mov dword [ebp - 0x23c], 0
mov byte [ebp - 0x238], 0
mov dword [ebp - 0x240], edi
jle 0x412ac0
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x412ac0
lea eax, [ebp - 0x90]
mov dword [esp], ebx
mov dword [ebp - 0x98], eax
call sub.msvcrt.dll_wcslen
mov edi, eax
lea eax, [eax + eax]
mov esi, eax
mov dword [ebp - 0x24c], eax
sar esi, 1
cmp esi, 7
ja 0x412ba0
cmp esi, 1
mov eax, dword [ebp - 0x98]
je 0x412ad0
test esi, esi
jne 0x412bc4
mov dword [ebp - 0x94], esi
xor esi, esi
lea ecx, [ebp - 0x98]
mov word [eax + edi*2], si
lea eax, [ebp - 0x228]
mov dword [esp + 8], 0
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0042dd80
mov ecx, dword [ebp - 0x228]
lea ebx, [ebp - 0x220]
mov eax, dword [ebp - 0x240]
mov edx, dword [ebp - 0x224]
cmp ecx, ebx
je 0x412be5
lea edi, [ebp - 0x238]
mov esi, dword [ebp - 0x220]
cmp eax, edi
je 0x412e10
test eax, eax
mov edi, dword [ebp - 0x238]
mov dword [ebp - 0x240], ecx
mov dword [ebp - 0x23c], edx
mov dword [ebp - 0x238], esi
je 0x412e22
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x220], edi
mov dword [ebp - 0x224], 0
mov byte [eax], 0
mov eax, dword [ebp - 0x228]
cmp eax, ebx
je 0x4128f3
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x98]
lea ecx, [ebp - 0x90]
cmp eax, ecx
je 0x41290b
mov dword [esp], eax
call fcn.004ed8c0
mov ebx, dword [ebp - 0x23c]
mov eax, dword [ebp - 0x240]
test ebx, ebx
je 0x413181
mov dword [esp + 4], str._install
mov dword [esp], eax
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
call ebx
sub esp, 8
test eax, eax
mov esi, eax
jne 0x412ae0
lea eax, [ebp - 0x90]
mov dword [esp], 0x17
mov dword [ebp - 0x98], eax
call fcn.004ed900
mov ecx, 0x676f
mov dword [ebp - 0x98], eax
mov dword [eax], 0x7362626d
mov dword [eax + 4], 0x69767265
mov dword [eax + 8], 0x695f6563
xor edx, edx
mov dword [eax + 0xc], 0x6174736e
mov dword [eax + 0x10], 0x6c2e6c6c
mov word [eax + 0x14], cx
mov byte [eax + 0x16], 0
lea eax, [ebp - 0x98]
mov dword [ebp - 0x90], 0x16
mov dword [ebp - 0x94], 0x16
call fcn.00411570
mov eax, dword [ebp - 0x98]
lea edx, [ebp - 0x90]
cmp eax, edx
je 0x4129c5
mov dword [esp], eax
call fcn.004ed8c0
call fcn.00411c20
lea ebx, [ebp - 0x198]
mov ecx, ebx
call fcn.004212b0
mov dword [esp + 4], 0x551098
mov dword [esp], 0x5510b0
mov ecx, ebx
call fcn.004226e0
sub esp, 8
test eax, eax
je 0x413793
call fcn.0042c430
lea edx, [ebp - 0x98]
lea ecx, [ebp - 0x90]
mov edi, 0x6563
mov dword [esp + 0x10], str.Install_service_start
mov dword [esp + 0xc], 0x49
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x90], 0x74736e49
mov dword [ebp - 0x8c], 0x536c6c61
mov dword [ebp - 0x88], 0x69767265
mov word [ebp - 0x84], di
mov dword [ebp - 0x94], 0xe
mov byte [ebp - 0x82], 0
call fcn.0042ce70
mov eax, dword [ebp - 0x98]
lea edi, [ebp - 0x90]
cmp eax, edi
je 0x412a86
mov dword [esp], eax
call fcn.004ed8c0
mov ecx, ebx
call fcn.004214d0
test eax, eax
je 0x412e35
mov ecx, ebx
call fcn.0041f450
mov eax, dword [ebp - 0x240]
lea ecx, [ebp - 0x238]
cmp eax, ecx
je 0x412ac2
mov dword [esp], eax
call fcn.004ed8c0
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
xor esi, esi
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
movzx edx, word [ebx]
mov word [eax], dx
jmp 0x412848
mov eax, dword [ebp - 0x240]
mov dword [esp + 4], str._remove
mov dword [esp], eax
call ebx
sub esp, 8
test eax, eax
jne 0x412c20
lea eax, [ebp - 0x90]
mov dword [esp], 0x16
mov dword [ebp - 0x98], eax
call fcn.004ed900
mov dword [ebp - 0x98], eax
mov dword [eax], 0x7362626d
xor edx, edx
mov dword [eax + 4], 0x69767265
mov dword [eax + 8], 0x725f6563
mov dword [eax + 0xc], 0x766f6d65
mov dword [eax + 0x10], 0x6f6c2e65
mov byte [eax + 0x14], 0x67
mov byte [eax + 0x15], 0
lea eax, [ebp - 0x98]
mov dword [ebp - 0x90], 0x15
mov dword [ebp - 0x94], 0x15
call fcn.00411570
mov eax, dword [ebp - 0x98]
lea edx, [ebp - 0x90]
cmp eax, edx
je 0x412b7f
mov dword [esp], eax
call fcn.004ed8c0
mov eax, 1
call fcn.004122e0
mov esi, eax
mov eax, dword [ebp - 0x240]
jmp 0x412aa2
cmp esi, 0x3fffffff
ja 0x41477c
lea eax, [esi + esi + 2]
mov dword [esp], eax
call fcn.004ed900
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x90], esi
mov ecx, dword [ebp - 0x24c]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [esp + 8], ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x98]
jmp 0x412848
test edx, edx
je 0x412c07
cmp edx, 1
jne 0x4130d1
movzx edx, byte [ebp - 0x220]
mov byte [eax], dl
mov edx, dword [ebp - 0x224]
mov eax, dword [ebp - 0x240]
mov dword [ebp - 0x23c], edx
mov byte [eax + edx], 0
mov eax, dword [ebp - 0x228]
jmp 0x4128d4
mov eax, dword [ebp - 0x240]
mov dword [esp + 4], str._start
mov dword [esp], eax
call ebx
sub esp, 8
test eax, eax
mov esi, eax
jne 0x412fc0
lea eax, [ebp - 0x90]
mov dword [esp], 0x15
mov dword [ebp - 0x98], eax
call fcn.004ed900
mov dword [ebp - 0x98], eax
mov dword [eax], 0x7362626d
xor edx, edx
mov dword [eax + 4], 0x69767265
mov dword [eax + 8], 0x735f6563
mov dword [eax + 0xc], 0x74726174
mov dword [eax + 0x10], 0x676f6c2e
mov byte [eax + 0x14], 0
lea eax, [ebp - 0x98]
mov dword [ebp - 0x90], 0x14
mov dword [ebp - 0x94], 0x14
call fcn.00411570
mov eax, dword [ebp - 0x98]
lea edi, [ebp - 0x90]
cmp eax, edi
je 0x412cbd
mov dword [esp], eax
call fcn.004ed8c0
call fcn.00411c20
lea ebx, [ebp - 0x118]
mov ecx, ebx
call fcn.004212b0
mov dword [esp + 4], 0x551098
mov dword [esp], 0x5510b0
mov ecx, ebx
call fcn.004226e0
sub esp, 8
test eax, eax
je 0x413e7b
call fcn.0042c430
lea edi, [ebp - 0x90]
mov dword [esp + 0x10], str.Start_service
mov dword [esp + 0xc], 0x8c
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x98], edi
mov edi, 0x6563
mov dword [ebp - 0x90], 0x72617453
mov word [ebp - 0x84], di
lea edi, [ebp - 0x98]
mov dword [ebp - 0x8c], 0x53707574
mov dword [ebp - 0x88], 0x69767265
mov dword [ebp - 0x94], 0xe
mov dword [esp + 8], edi
mov byte [ebp - 0x82], 0
call fcn.0042ce70
mov eax, dword [ebp - 0x98]
lea edi, [ebp - 0x90]
cmp eax, edi
je 0x412d7e
mov dword [esp], eax
call fcn.004ed8c0
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
sub esp, 4
mov ecx, ebx
call fcn.00420f90
test eax, eax
jne 0x412a95
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.0042c430
lea ecx, [ebp - 0x98]
mov dword [esp], str.StartupService
mov edi, eax
call fcn.004eea50
lea eax, [ebp - 0x98]
push ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], str.Start_service_error__error_code___d
mov dword [esp + 0xc], 0x90
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0042ce70
mov eax, dword [ebp - 0x98]
lea edi, [ebp - 0x90]
cmp eax, edi
je 0x412fac
mov dword [esp], eax
call fcn.004ed8c0
jmp 0x412fac
mov dword [ebp - 0x240], ecx
mov dword [ebp - 0x23c], edx
mov dword [ebp - 0x238], esi
mov dword [ebp - 0x228], ebx
lea ebx, [ebp - 0x220]
mov eax, ebx
jmp 0x4128d4
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
mov esi, eax
call fcn.0042c430
lea ecx, [ebp - 0x90]
lea edx, [ebp - 0x98]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], str.Install_service_error__error_code___d
mov dword [esp + 0xc], 0x4c
mov dword [ebp - 0x98], ecx
mov dword [esp + 8], edx
mov ecx, 0x6563
mov dword [esp + 4], 1
mov dword [esp], eax
mov dword [ebp - 0x90], 0x74736e49
mov dword [ebp - 0x8c], 0x536c6c61
mov dword [ebp - 0x88], 0x69767265
mov word [ebp - 0x84], cx
mov dword [ebp - 0x94], 0xe
mov byte [ebp - 0x82], 0
call fcn.0042ce70
mov eax, dword [ebp - 0x98]
lea ecx, [ebp - 0x90]
cmp eax, ecx
je 0x412ed1
mov dword [esp], eax
call fcn.004ed8c0
cmp esi, 0x420
je 0x412fac
mov dword [esp], 0x7d0
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
call esi
sub esp, 4
mov ecx, ebx
call fcn.004214d0
test eax, eax
jne 0x412fa0
call edi
mov edi, eax
call fcn.0042c430
lea edx, [ebp - 0x90]
mov dword [esp + 0x14], edi
lea edi, [ebp - 0x98]
mov dword [esp + 0x10], str.Install_service_error__error_code___d
mov dword [esp + 0xc], 0x55
mov dword [ebp - 0x98], edx
mov dword [esp + 8], edi
mov edx, 0x6563
mov dword [esp + 4], 1
mov dword [esp], eax
mov dword [ebp - 0x90], 0x74736e49
mov dword [ebp - 0x8c], 0x536c6c61
mov dword [ebp - 0x88], 0x69767265
mov word [ebp - 0x84], dx
mov dword [ebp - 0x94], 0xe
mov byte [ebp - 0x82], 0
call fcn.0042ce70
mov eax, dword [ebp - 0x98]
lea ecx, [ebp - 0x90]
cmp eax, ecx
je 0x412f94
mov dword [esp], eax
call fcn.004ed8c0
mov dword [esp], 1
call fcn.00407ba0
mov dword [esp], 0xea60
call esi
sub esp, 4
mov esi, 0xffffffff
jmp 0x412a95
mov eax, dword [ebp - 0x240]
mov dword [esp + 4], str._stop
mov dword [esp], eax
call ebx
sub esp, 8
test eax, eax
je 0x4130f2
mov eax, dword [ebp - 0x240]
cmp byte [eax], 0x2f
je 0x413188
mov dword [esp + 4], str._service
mov dword [esp], eax
call ebx
mov esi, eax
lea eax, [ebp - 0x90]
sub esp, 8
test esi, esi
mov dword [ebp - 0x98], eax
jne 0x413317
mov eax, 0x676f
xor edx, edx
mov dword [ebp - 0x90], 0x7362626d
mov word [ebp - 0x84], ax
lea eax, [ebp - 0x98]
mov dword [ebp - 0x8c], 0x69767265
mov dword [ebp - 0x88], 0x6c2e6563
mov dword [ebp - 0x94], 0xe
mov byte [ebp - 0x82], 0
call fcn.00411570
mov eax, dword [ebp - 0x98]
lea edx, [ebp - 0x90]
cmp eax, edx
je 0x413073
mov dword [esp], eax
call fcn.004ed8c0
call fcn.00411c20
lea ecx, [ebp - 0x98]
call fcn.004212b0
lea ecx, [ebp - 0x98]
mov dword [esp + 4], 0x551098
mov dword [esp], 0x5510b0
call fcn.004226e0
sub esp, 8
test eax, eax
je 0x4143b5
lea ecx, [ebp - 0x98]
call fcn.00420000
test eax, eax
je 0x414355
lea ecx, [ebp - 0x98]
call fcn.0041f450
mov eax, dword [ebp - 0x240]
jmp 0x412aa2
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x224]
mov eax, dword [ebp - 0x240]
jmp 0x412c07
lea eax, [ebp - 0x90]
mov dword [esp], 0x14
mov dword [ebp - 0x98], eax
call fcn.004ed900
mov edx, 0x6f6c
mov dword [ebp - 0x98], eax
mov dword [eax], 0x7362626d
mov word [eax + 0x10], dx
mov dword [eax + 4], 0x69767265
xor edx, edx
mov dword [eax + 8], 0x735f6563
mov dword [eax + 0xc], 0x2e706f74
mov byte [eax + 0x12], 0x67
mov byte [eax + 0x13], 0
lea eax, [ebp - 0x98]
mov dword [ebp - 0x90], 0x13
mov dword [ebp - 0x94], 0x13
call fcn.00411570
mov eax, dword [ebp - 0x98]
lea edx, [ebp - 0x90]
cmp eax, edx
je 0x413175
mov dword [esp], eax
call fcn.004ed8c0
xor eax, eax
call fcn.004122e0
jmp 0x412b89
xor esi, esi
jmp 0x412aa2
lea eax, [ebp - 0x90]
mov dword [esp], 0x1a
mov dword [ebp - 0x98], eax
call fcn.004ed900
mov dword [ebp - 0x98], eax
mov dword [eax], 0x7362626d
mov edx, 1
mov dword [eax + 4], 0x69767265
mov dword [eax + 8], 0x735f6563
mov dword [eax + 0xc], 0x63746977
mov dword [eax + 0x10], 0x726f7068
mov dword [eax + 0x14], 0x6f6c2e74
mov byte [eax + 0x18], 0x67
mov byte [eax + 0x19], 0
lea eax, [ebp - 0x98]
mov dword [ebp - 0x90], 0x19
mov dword [ebp - 0x94], 0x19
call fcn.00411570
mov eax, dword [ebp - 0x98]
lea edx, [ebp - 0x90]
cmp eax, edx
je 0x413213
mov dword [esp], eax
call fcn.004ed8c0
call fcn.00411c20
mov eax, dword [ebp - 0x240]
mov dword [esp + 4], str._noservice
mov dword [esp], eax
call ebx
sub esp, 8
test eax, eax
mov esi, eax
je 0x413768
mov dword [esp], 0xa8
call fcn.004ed900
mov dword [esp], 0
mov ecx, eax
mov ebx, eax
call fcn.0040bbe0
mov esi, dword [ebp - 0x23c]
sub esp, 4
test esi, esi
je 0x414524
lea eax, [ebp - 0x90]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x240]
lea edi, [eax + 1]
mov ecx, eax
add ecx, esi
mov edx, edi
mov dword [ebp - 0x24c], edi
lea edi, [esi - 1]
je 0x413293
test edx, edx
je 0x4146fb
cmp edi, 0xf
ja 0x413e29
cmp edi, 1
je 0x413e66
test edi, edi
lea eax, [ebp - 0x90]
jne 0x413e45
mov dword [ebp - 0x94], edi
mov byte [eax + esi - 1], 0
lea eax, [ebp - 0x98]
mov ecx, ebx
mov dword [esp], eax
call fcn.00410490
mov esi, eax
mov eax, dword [ebp - 0x98]
lea edi, [ebp - 0x90]
sub esp, 4
cmp eax, edi
je 0x4132eb
mov dword [esp], eax
call fcn.004ed8c0
mov ecx, ebx
call fcn.0040e280
mov ecx, ebx
call fcn.00409190
mov dword [esp + 4], 0xa8
mov dword [esp], ebx
call fcn.004ed8d0
xor eax, eax
test esi, esi
sete al
neg eax
jmp 0x412b89
mov dword [esp], 0x18
call fcn.004ed900
mov edx, 0x6f6c
mov dword [ebp - 0x98], eax
mov dword [eax], 0x7362626d
mov word [eax + 0x14], dx
mov dword [eax + 4], 0x69767265
xor edx, edx
mov dword [eax + 8], 0x735f6563
mov dword [eax + 0xc], 0x74726f68
mov dword [eax + 0x10], 0x2e747563
mov byte [eax + 0x16], 0x67
mov byte [eax + 0x17], 0
lea eax, [ebp - 0x98]
mov dword [ebp - 0x90], 0x17
mov dword [ebp - 0x94], 0x17
call fcn.00411570
mov eax, dword [ebp - 0x98]
lea edi, [ebp - 0x90]
cmp eax, edi
je 0x413395
mov dword [esp], eax
call fcn.004ed8c0
lea ecx, [ebp - 0x240]
mov dword [esp + 8], 8
mov dword [esp + 4], 0
mov dword [esp], str.shortcut
call fcn.0045b2d0
sub esp, 0xc
cmp eax, 0xffffffff
je 0x41380e
lea edi, [ebp - 0x1b0]
mov dword [esp], edi
call fcn.0042f800
mov ebx, dword [ebp - 0x1ac]
mov eax, 0x7fffffff
sub eax, ebx
cmp eax, 0xb
jbe 0x4148be
mov edx, dword [ebp - 0x1b0]
lea eax, [ebp - 0x1a8]
lea esi, [ebx + 0xc]
mov dword [ebp - 0x24c], eax
cmp edx, eax
mov eax, 0xf
cmovne eax, dword [ebp - 0x1a8]
cmp esi, eax
ja 0x413ba6
add edx, ebx
mov dword [edx], 0x6f437241
mov dword [edx + 4], 0x6769666e
mov dword [edx + 8], 0x7461642e
mov eax, dword [ebp - 0x1b0]
mov dword [ebp - 0x1ac], esi
mov byte [eax + ebx + 0xc], 0
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1f8], eax
mov eax, dword [ebp - 0x1b0]
cmp eax, dword [ebp - 0x24c]
je 0x413e0b
mov edx, dword [ebp - 0x1a8]
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x1f0], edx
mov edx, dword [ebp - 0x1ac]
mov dword [esp], eax
mov dword [ebp - 0x1f4], edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
sub esp, 4
cmp eax, 1
je 0x4138ed
call fcn.0042c430
mov edx, dword [ebp - 0x1f8]
lea edi, [ebp - 0x90]
mov dword [esp + 0x10], str._s_not_exist
mov dword [esp + 0xc], 0xe2
mov dword [esp + 4], 1
mov dword [esp], eax
mov dword [ebp - 0x98], edi
mov dword [esp + 0x14], edx
lea edx, [ebp - 0x98]
mov dword [ebp - 0x90], 0x43746547
mov dword [ebp - 0x8c], 0x69666e6f
mov dword [ebp - 0x88], 0x6c725567
mov dword [esp + 8], edx
mov dword [ebp - 0x94], 0xc
mov byte [ebp - 0x84], 0
call fcn.0042ce70
mov eax, dword [ebp - 0x98]
cmp eax, edi
je 0x413510
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x1f8]
lea edx, [ebp - 0x1f0]
cmp eax, edx
je 0x413528
mov dword [esp], eax
call fcn.004ed8c0
lea esi, [ebp - 0x210]
lea eax, [ebp - 0x208]
mov dword [ebp - 0x20c], 0
mov byte [ebp - 0x208], 0
mov dword [esp], esi
mov dword [ebp - 0x210], eax
call fcn.004315a0
mov edi, eax
mov eax, dword [ebp - 0x210]
mov dword [esp + 4], str.iexplore.exe
mov dword [esp], eax
call sub.msvcrt.dll_strstr
test eax, eax
je 0x413665
call fcn.0042c430
mov ebx, eax
lea eax, [ebp - 0x90]
mov dword [esp], 0x12
mov dword [ebp - 0x98], eax
call fcn.004ed900
mov dword [eax], 0x726f6853
mov dword [eax + 4], 0x74756374
mov dword [eax + 8], 0x7265704f
mov dword [eax + 0xc], 0x6f697461
mov byte [eax + 0x10], 0x6e
mov byte [eax + 0x11], 0
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x98]
mov dword [esp + 0x10], str.Browser_path_contains_iexplore.exe
mov dword [esp + 0xc], 0xef
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], ebx
mov dword [ebp - 0x90], 0x11
mov dword [ebp - 0x94], 0x11
call fcn.0042ce70
mov eax, dword [ebp - 0x98]
lea edx, [ebp - 0x90]
cmp eax, edx
je 0x413611
mov dword [esp], eax
call fcn.004ed8c0
lea eax, [ebp - 0x198]
lea edx, [ebp - 0x190]
mov dword [esp], esi
mov dword [ebp - 0x194], 0
mov byte [ebp - 0x190], 0
mov dword [esp + 4], eax
mov dword [ebp - 0x250], edx
mov dword [ebp - 0x198], edx
call fcn.0042fbe0
cmp eax, 1
mov edx, dword [ebp - 0x198]
je 0x413bd0
cmp edx, dword [ebp - 0x250]
je 0x413665
mov dword [esp], edx
call fcn.004ed8c0
mov eax, dword [ebp - 0x240]
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x4fc1f3
mov dword [esp], 0
mov dword [esp + 8], eax
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
sub esp, 0x18
mov esi, eax
call fcn.0042c430
mov ebx, eax
lea eax, [ebp - 0x90]
mov dword [esp], 0x12
mov dword [ebp - 0x98], eax
call fcn.004ed900
mov dword [eax], 0x726f6853
mov dword [eax + 4], 0x74756374
mov dword [eax + 8], 0x7265704f
mov dword [eax + 0xc], 0x6f697461
mov byte [eax + 0x10], 0x6e
mov byte [eax + 0x11], 0
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x98]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], str.ShellExecute_return_value_is__d
mov dword [esp + 0xc], 0xfc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], ebx
mov dword [ebp - 0x90], 0x11
mov dword [ebp - 0x94], 0x11
call fcn.0042ce70
mov eax, dword [ebp - 0x98]
lea edi, [ebp - 0x90]
cmp eax, edi
je 0x413743
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x210]
lea edi, [ebp - 0x208]
cmp eax, edi
je 0x41375b
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x240]
xor esi, esi
jmp 0x412aa2
mov dword [esp], 0
call fcn.00407ba0
jmp 0x4130c6
mov dword [esp], str.CommandLineToArgvW_failed
mov esi, 0xffffffff
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
sub esp, 4
jmp 0x412ac2
call fcn.0042c430
lea edi, [ebp - 0x90]
mov edx, 0x6563
mov dword [esp + 0x10], str.Install_service_failed
mov dword [esp + 0xc], 0x45
mov dword [esp + 4], 1
mov dword [ebp - 0x98], edi
lea edi, [ebp - 0x98]
mov dword [esp], eax
mov dword [ebp - 0x90], 0x74736e49
mov dword [ebp - 0x8c], 0x536c6c61
mov dword [esp + 8], edi
mov dword [ebp - 0x88], 0x69767265
mov word [ebp - 0x84], dx
mov dword [ebp - 0x94], 0xe
mov byte [ebp - 0x82], 0
call fcn.0042ce70
jmp 0x412ded
mov esi, dword [ebp - 0x23c]
test esi, esi
je 0x4148ec
mov eax, dword [ebp - 0x240]
lea ebx, [ebp - 0x1d8]
mov dword [ebp - 0x1e0], ebx
lea edi, [eax + 1]
mov ecx, eax
add ecx, esi
mov edx, edi
mov dword [ebp - 0x24c], edi
lea edi, [esi - 1]
je 0x41384a
test edx, edx
je 0x4148e0
cmp edi, 0xf
ja 0x413d80
cmp edi, 1
je 0x413dfa
test edi, edi
mov eax, ebx
jne 0x413d9c
mov dword [ebp - 0x1dc], edi
mov byte [eax + esi - 1], 0
mov edx, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x240]
cmp edx, ebx
mov eax, ecx
je 0x413dbd
lea edi, [ebp - 0x238]
mov esi, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
cmp eax, edi
je 0x414140
test eax, eax
mov edi, dword [ebp - 0x238]
mov dword [ebp - 0x240], edx
mov dword [ebp - 0x23c], esi
mov dword [ebp - 0x238], ecx
je 0x414152
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1d8], edi
mov dword [ebp - 0x1dc], 0
mov byte [eax], 0
mov eax, dword [ebp - 0x1e0]
cmp eax, ebx
jne 0x413520
jmp 0x413528
lea eax, [ebp - 0x1f8]
lea ecx, [ebp - 0x98]
mov dword [esp], eax
call fcn.00407c80
lea eax, [ebp - 0x98]
sub esp, 4
lea ecx, [ebp - 0x1c8]
mov dword [esp + 4], 6
mov dword [esp], eax
call fcn.004237b0
mov edx, dword [ebp - 0x1c8]
lea edi, [ebp - 0x1c0]
sub esp, 8
mov ecx, dword [ebp - 0x240]
mov eax, dword [ebp - 0x1c4]
cmp edx, edi
je 0x41410f
lea edi, [ebp - 0x238]
mov ebx, dword [ebp - 0x1c0]
cmp ecx, edi
je 0x414165
test ecx, ecx
mov esi, dword [ebp - 0x238]
mov dword [ebp - 0x240], edx
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x238], ebx
je 0x414177
mov dword [ebp - 0x1c8], ecx
mov dword [ebp - 0x1c0], esi
mov eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x1c4], 0
lea edx, [ebp - 0x1c0]
mov byte [eax], 0
mov eax, dword [ebp - 0x1c8]
cmp eax, edx
je 0x4139ae
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x23c]
test eax, eax
jne 0x413a34
call fcn.0042c430
lea edx, [ebp - 0x118]
lea ebx, [ebp - 0x110]
mov dword [esp + 0x10], str.ReadIniString_url_failed
mov dword [esp + 0xc], 0xc7
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [ebp - 0x118], ebx
mov dword [ebp - 0x110], 0x43746547
mov dword [ebp - 0x10c], 0x69666e6f
mov dword [ebp - 0x108], 0x6c725567
mov dword [ebp - 0x114], 0xc
mov byte [ebp - 0x104], 0
call fcn.0042ce70
mov eax, dword [ebp - 0x118]
cmp eax, ebx
je 0x413a34
mov dword [esp], eax
call fcn.004ed8c0
lea eax, [ebp - 0x98]
lea ecx, [ebp - 0x1e0]
mov dword [esp + 4], 9
mov dword [esp], eax
call fcn.004237b0
mov eax, dword [ebp - 0x1dc]
sub esp, 8
test eax, eax
je 0x413ed8
mov eax, dword [ebp - 0x23c]
test eax, eax
jne 0x413f4d
mov eax, dword [ebp - 0x1e0]
lea edx, [ebp - 0x1d8]
cmp eax, edx
je 0x413a87
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x4c]
lea edx, [ebp - 0x44]
mov dword [ebp - 0x98], 0x508564
cmp eax, edx
je 0x413aa3
mov dword [esp], eax
call fcn.004ed8c0
mov ebx, dword [ebp - 0x5c]
test ebx, ebx
je 0x413aec
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x64]
mov dword [esp], eax
call fcn.004e3180
mov eax, dword [ebx + 0x14]
lea edx, [ebx + 0x1c]
sub esp, 4
mov esi, dword [ebx + 8]
cmp eax, edx
je 0x413ae0
mov dword [esp], eax
call fcn.004ed8c0
mov dword [esp], ebx
call fcn.004ed8c0
test esi, esi
je 0x413aec
mov ebx, esi
jmp 0x413aaa
mov dword [esp], ebx
call fcn.004ed8c0
test esi, esi
jne 0x413adc
mov ebx, dword [ebp - 0x74]
test ebx, ebx
je 0x413b35
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x7c]
mov dword [esp], eax
call fcn.004e3180
mov eax, dword [ebx + 0x14]
lea edx, [ebx + 0x1c]
sub esp, 4
mov esi, dword [ebx + 8]
cmp eax, edx
je 0x413b29
mov dword [esp], eax
call fcn.004ed8c0
mov dword [esp], ebx
call fcn.004ed8c0
test esi, esi
je 0x413b35
mov ebx, esi
jmp 0x413af3
mov dword [esp], ebx
call fcn.004ed8c0
test esi, esi
jne 0x413b25
mov ebx, dword [ebp - 0x8c]
test ebx, ebx
je 0x413510
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x94]
mov dword [esp], eax
call fcn.004e29c0
mov eax, dword [ebx + 0x2c]
lea edx, [ebx + 0x34]
sub esp, 4
mov esi, dword [ebx + 8]
cmp eax, edx
je 0x413b6c
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebx + 0x14]
lea edx, [ebx + 0x1c]
cmp eax, edx
je 0x413b92
mov dword [esp], eax
call fcn.004ed8c0
mov dword [esp], ebx
call fcn.004ed8c0
test esi, esi
je 0x413510
mov ebx, esi
jmp 0x413b43
mov dword [esp], ebx
call fcn.004ed8c0
test esi, esi
je 0x413510
mov ebx, esi
jmp 0x413b43
mov dword [esp + 0xc], 0xc
mov dword [esp + 8], 0x4fbe6f
mov ecx, edi
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.004ce110
sub esp, 0x10
jmp 0x413428
call fcn.0042c430
lea edx, [ebp - 0x90]
mov dword [esp], 0x12
mov dword [ebp - 0x24c], eax
mov ebx, dword [ebp - 0x198]
mov dword [ebp - 0x98], edx
call fcn.004ed900
mov dword [eax], 0x726f6853
mov dword [eax + 4], 0x74756374
lea edx, [ebp - 0x98]
mov dword [eax + 8], 0x7265704f
mov dword [eax + 0xc], 0x6f697461
mov byte [eax + 0x10], 0x6e
mov byte [eax + 0x11], 0
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x24c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], str.Browser_version_is__s
mov dword [esp + 0xc], 0xf2
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x90], 0x11
mov dword [ebp - 0x94], 0x11
call fcn.0042ce70
mov eax, dword [ebp - 0x98]
lea ecx, [ebp - 0x90]
cmp eax, ecx
je 0x413c82
mov dword [esp], eax
call fcn.004ed8c0
mov edx, dword [ebp - 0x198]
cmp byte [edx], 0x36
je 0x414188
test edi, edi
jne 0x413655
lea ebx, [ebp - 0x118]
mov dword [esp + 8], esi
mov dword [esp + 4], 0x4fc1f1
mov dword [esp], ebx
call fcn.004eb440
cmp dword [ebp - 0x114], 0x7fffffff
je 0x414809
mov dword [esp + 4], 1
mov dword [esp], 0x4fc1f1
mov ecx, ebx
call fcn.004cde40
lea edi, [ebp - 0x90]
push edx
push edx
lea edx, [eax + 8]
mov dword [ebp - 0x98], edi
mov ecx, dword [eax]
cmp ecx, edx
je 0x414347
mov dword [ebp - 0x98], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x90], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x94], ecx
mov dword [eax], edx
mov dword [eax + 4], 0
mov byte [eax + 8], 0
lea eax, [ebp - 0x240]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
lea eax, [ebp - 0x98]
mov dword [esp], eax
call fcn.00431c20
mov eax, dword [ebp - 0x98]
lea edi, [ebp - 0x90]
cmp eax, edi
je 0x413d51
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x118]
lea edx, [ebp - 0x110]
cmp eax, edx
je 0x413d69
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x198]
cmp eax, dword [ebp - 0x250]
jne 0x41373b
jmp 0x413743
test esi, esi
jle 0x4148b2
mov dword [esp], esi
call fcn.004ed900
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1d8], edi
mov edx, dword [ebp - 0x24c]
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x1e0]
jmp 0x413866
mov eax, dword [ebp - 0x1dc]
test eax, eax
je 0x413de5
cmp eax, 1
jne 0x414197
movzx eax, byte [ebp - 0x1d8]
mov byte [ecx], al
mov ecx, dword [ebp - 0x240]
mov eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x23c], eax
mov byte [ecx + eax], 0
mov eax, dword [ebp - 0x1e0]
jmp 0x4138cd
movzx eax, byte [eax + 1]
mov byte [ebp - 0x1d8], al
mov eax, ebx
jmp 0x413866
mov ecx, 4
lea edi, [ebp - 0x1f0]
mov esi, dword [ebp - 0x24c]
lea eax, [ebp - 0x1f0]
rep movsd dword es:[edi], dword [esi]
jmp 0x413469
test esi, esi
jle 0x414788
mov dword [esp], esi
call fcn.004ed900
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x90], edi
mov edx, dword [ebp - 0x24c]
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x98]
jmp 0x4132b3
movzx eax, byte [eax + 1]
mov byte [ebp - 0x90], al
lea eax, [ebp - 0x90]
jmp 0x4132b3
call fcn.0042c430
lea ecx, [ebp - 0x98]
mov dword [esp], str.StartupService
mov esi, eax
call fcn.004eea50
push eax
lea eax, [ebp - 0x98]
mov dword [esp + 0x10], str.Start_service_failed
mov dword [esp + 0xc], 0x88
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.0042ce70
mov eax, dword [ebp - 0x98]
lea edx, [ebp - 0x90]
cmp eax, edx
jne 0x412e01
jmp 0x412fac
call fcn.0042c430
lea ebx, [ebp - 0x110]
mov esi, str.GetConfigUrl
mov ecx, 3
lea edx, [ebp - 0x118]
mov dword [ebp - 0x118], ebx
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x10], 0x4fc114
mov dword [esp + 0xc], 0xcd
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x114], 0xc
mov byte [ebp - 0x104], 0
call fcn.0042ce70
mov eax, dword [ebp - 0x118]
cmp eax, ebx
je 0x413a61
mov dword [esp], eax
call fcn.004ed8c0
jmp 0x413a61
lea ecx, [ebp - 0x1e0]
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], 0x4fc135
call fcn.0045b2d0
sub esp, 0xc
add eax, 1
je 0x413a6f
lea eax, [ebp - 0x98]
lea ecx, [ebp - 0x1c8]
mov dword [esp + 4], 4
mov dword [esp], eax
call fcn.004237b0
cmp dword [ebp - 0x1c4], 0
push edi
push edi
jne 0x41400e
call fcn.0042c430
lea ebx, [ebp - 0x110]
mov esi, str.GetConfigUrl
mov ecx, 3
lea edx, [ebp - 0x118]
mov dword [ebp - 0x118], ebx
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x10], str.Read_version_number_failed.
mov dword [esp + 0xc], 0xd6
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x114], 0xc
mov byte [ebp - 0x104], 0
call fcn.0042ce70
mov eax, dword [ebp - 0x118]
cmp eax, ebx
je 0x41400e
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x24c]
mov esi, 0x4fc153
mov ecx, 9
mov edi, eax
mov dword [ebp - 0x1b0], eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x240]
mov dword [esp + 8], 9
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x1ac], 9
mov byte [ebp - 0x19f], 0
call fcn.0045b2d0
sub esp, 0xc
add eax, 1
jne 0x41406c
cmp dword [ebp - 0x1c4], 1
ja 0x4141b8
call fcn.0042c430
lea ebx, [ebp - 0x110]
mov esi, str.GetConfigUrl
mov ecx, 3
lea edx, [ebp - 0x118]
mov dword [ebp - 0x118], ebx
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x10], str.Already_have_version_num_Or_version_num_length_small_than_2.
mov dword [esp + 0xc], 0xde
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x114], 0xc
mov byte [ebp - 0x104], 0
call fcn.0042ce70
mov eax, dword [ebp - 0x118]
cmp eax, ebx
je 0x4140d8
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x1b0]
cmp eax, dword [ebp - 0x24c]
je 0x4140ee
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x1c8]
lea edi, [ebp - 0x1c0]
cmp eax, edi
je 0x413a6f
mov dword [esp], eax
call fcn.004ed8c0
jmp 0x413a6f
test eax, eax
je 0x414131
cmp eax, 1
jne 0x414320
movzx eax, byte [ebp - 0x1c0]
mov byte [ecx], al
mov ecx, dword [ebp - 0x240]
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x23c], eax
mov byte [ecx + eax], 0
jmp 0x413983
mov dword [ebp - 0x240], edx
mov dword [ebp - 0x23c], esi
mov dword [ebp - 0x238], ecx
mov dword [ebp - 0x1e0], ebx
lea ebx, [ebp - 0x1d8]
mov eax, ebx
jmp 0x4138cd
mov dword [ebp - 0x240], edx
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x238], ebx
lea eax, [ebp - 0x1c0]
mov dword [ebp - 0x1c8], eax
jmp 0x413983
cmp byte [edx + 1], 0x2e
jne 0x413c91
jmp 0x413c99
mov dword [esp], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x240]
mov eax, dword [ebp - 0x1dc]
jmp 0x413de5
mov esi, dword [ebp - 0x240]
lea eax, [ebp - 0x190]
mov ebx, dword [ebp - 0x23c]
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x198], eax
mov eax, esi
add eax, ebx
je 0x4141e4
test esi, esi
je 0x414548
cmp ebx, 0xf
ja 0x414507
cmp ebx, 1
je 0x4144f9
test ebx, ebx
jne 0x4144b2
mov eax, dword [ebp - 0x198]
mov dword [ebp - 0x194], ebx
mov byte [eax + ebx], 0
mov eax, dword [ebp - 0x1ac]
lea ebx, [ebp - 0x198]
mov ecx, ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1b0]
mov dword [esp], eax
call fcn.004cde40
mov eax, dword [ebp - 0x1c4]
push esi
mov ecx, ebx
push esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c8]
mov dword [esp], eax
call fcn.004cde40
lea ebx, [ebp - 0x110]
push ecx
push ecx
lea edx, [eax + 8]
mov dword [ebp - 0x118], ebx
mov ecx, dword [eax]
cmp ecx, edx
je 0x4143f7
mov dword [ebp - 0x118], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x110], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x114], ecx
mov dword [eax], edx
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x240]
cmp eax, ebx
je 0x414815
lea edi, [ebp - 0x238]
mov edx, dword [ebp - 0x110]
mov esi, dword [ebp - 0x114]
cmp ecx, edi
je 0x4147e5
test ecx, ecx
mov edi, dword [ebp - 0x238]
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x23c], esi
mov dword [ebp - 0x238], edx
je 0x4147f7
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x110], edi
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x114], 0
mov byte [eax], 0
mov eax, dword [ebp - 0x118]
cmp eax, ebx
je 0x414309
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x198]
cmp eax, dword [ebp - 0x250]
jne 0x4140d0
jmp 0x4140d8
mov dword [esp + 8], eax
lea eax, [ebp - 0x1c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x240]
mov eax, dword [ebp - 0x1c4]
jmp 0x414131
mov ecx, 4
mov esi, edx
rep movsd dword es:[edi], dword [esi]
jmp 0x413d03
call fcn.0042c430
lea ebx, [ebp - 0x118]
mov dword [esp], str.DesignatedService
mov esi, eax
mov ecx, ebx
call fcn.004eea50
push ecx
mov dword [esp + 0x10], str.Designated_service_failed
mov dword [esp + 0xc], 0xb8
mov dword [esp + 8], ebx
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.0042ce70
mov eax, dword [ebp - 0x118]
lea edx, [ebp - 0x110]
cmp eax, edx
je 0x4143ad
mov dword [esp], eax
call fcn.004ed8c0
or esi, 0xffffffff
jmp 0x4130bb
call fcn.0042c430
lea ebx, [ebp - 0x118]
mov dword [esp], str.DesignatedService
mov esi, eax
mov ecx, ebx
call fcn.004eea50
push edi
mov dword [esp + 0x10], str.Designated_service_failed
mov dword [esp + 0xc], 0xb3
mov dword [esp + 8], ebx
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.0042ce70
jmp 0x414395
mov ecx, 4
mov edi, ebx
mov esi, edx
rep movsd dword es:[edi], dword [esi]
jmp 0x414274
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x98], 0x508540
call fcn.0044e4a0
mov eax, dword [ebp - 0x1f8]
lea edi, [ebp - 0x1f0]
cmp eax, edi
je 0x414492
mov dword [esp], eax
call fcn.004ed8c0
mov eax, dword [ebp - 0x240]
lea edx, [ebp - 0x238]
cmp eax, edx
je 0x4144aa
mov dword [esp], eax
call fcn.004ed8c0
mov dword [esp], ebx
call fcn.0043f8d0
mov eax, dword [ebp - 0x250]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4141fe
movzx eax, byte [esi]
mov byte [ebp - 0x190], al
jmp 0x4141fe
test ebx, ebx
js 0x414554
lea eax, [ebx + 1]
mov dword [esp], eax
call fcn.004ed900
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x190], ebx
jmp 0x4144b8
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x4fc082
mov dword [esp], 0x4fc098
call fcn.004e8380
mov dword [esp], 0x4fbe28
call fcn.004e7b80
mov dword [esp], 0x4fbddc
call fcn.004e7d10
mov esi, eax
mov eax, dword [ebp - 0x118]
cmp eax, ebx
je 0x414574
mov dword [esp], eax
call fcn.004ed8c0
mov ebx, esi
jmp 0x414465
mov esi, eax
mov eax, dword [ebp - 0x98]
lea edx, [ebp - 0x90]
cmp eax, edx
je 0x414595
mov dword [esp], eax
call fcn.004ed8c0
mov ecx, ebx
mov ebx, esi
call fcn.0041f450
jmp 0x414492
mov dword [esp], 0x4fbe28
call fcn.004e7b80
mov esi, eax
jmp 0x414595
mov dword [esp], 0x4fbddc
call fcn.004e7d10
mov dword [esp], 0x4fbddc
call fcn.004e7d10
mov esi, eax
mov eax, dword [ebp - 0x98]
lea edi, [ebp - 0x90]
cmp eax, edi
jne 0x41458d
jmp 0x414595
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x23c], esi
mov dword [ebp - 0x238], edx
mov dword [ebp - 0x118], ebx
jmp 0x4142e4
mov dword [esp], 0x4fbe0d
call fcn.004e7d10
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x414839
cmp eax, 1
jne 0x414879
movzx eax, byte [ebp - 0x110]
mov byte [ecx], al
mov ecx, dword [ebp - 0x240]
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0x23c], eax
mov byte [ecx + eax], 0
jmp 0x4142e4
mov dword [esp], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x240]
mov eax, dword [ebp - 0x114]
jmp 0x414839
mov dword [esp], 0x4fbddc
call fcn.004e7d10
lea eax, [ebp - 0x1a8]
mov dword [esp], 0x4fbe0d
mov dword [ebp - 0x24c], eax
call fcn.004e7d10
jmp 0x41457b
mov dword [esp], 0x4fbe28
call fcn.004e7b80
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x4fc082
mov dword [esp], 0x4fc098
call fcn.004e8380
mov ebx, eax
jmp 0x41447a