Function at 0x4e08a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x517caa
mov eax, dword fs:[0]
push eax
sub esp, 0x5a0
mov eax, dword [0x572bb0]
xor eax, esp
mov dword [esp + 0x598], eax
push ebx
push esi
push edi
mov eax, dword [0x572bb0]
xor eax, esp
push eax
lea eax, [esp + 0x5b0]
mov dword fs:[0], eax
mov dword [esp + 0x28], ecx
xorps xmm0, xmm0
mov dword [esp + 0xfc], 0x555e0c
movdqu xmmword [esp + 0x100], xmm0
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x5b8], 0
lea eax, [esp + 0xfc]
mov esi, dword [0x57c4dc]
add esi, 0x10
mov dword [esp + 0x34], eax
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [0x57a2c4]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.004e8f80
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [esp + 0x28]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x4e0997
push str._bglogstestmood
push eax
call fcn.004eaf4e
add esp, 8
test eax, eax
je 0x4e0997
sub eax, dword [esi]
mov edx, 1
movzx ecx, byte [0x57a095]
sar eax, 1
cmp eax, 0xffffffff
cmovne ecx, edx
mov byte [0x57a095], cl
push 0x55609c
lea ecx, [esp + 0x3c]
call fcn.00471bb0
lea eax, [esp + 0x38]
mov byte [esp + 0x5b8], 1
push eax
mov edx, esi
lea ecx, [esp + 0x28]
call fcn.0047cd70
add esp, 4
mov byte [esp + 0x5b8], 3
or ebx, 0xffffffff
mov edx, dword [esp + 0x38]
mov eax, ebx
add edx, 0xfffffff0
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4e09e8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x24]
cmp dword [eax - 0xc], 0
jne 0x4e0a5e
push 0x5560a4
lea ecx, [esp + 0x24]
call fcn.00471bb0
lea eax, [esp + 0x24]
mov byte [esp + 0x5b8], 4
push eax
lea edx, [esp + 0x24]
mov ecx, esi
call fcn.0047cbf0
add esp, 4
mov byte [esp + 0x5b8], 3
mov edx, dword [esp + 0x20]
test al, al
mov ecx, ebx
sete byte [esp + 0x13]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e0a47
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [esp + 0x13], 0
je 0x4e0a5e
push 0x22
push str.10718
lea ecx, [esp + 0x2c]
call fcn.004725a0
push 0x5565a0
lea ecx, [esp + 0x38]
call fcn.00471bb0
lea eax, [esp + 0x34]
mov byte [esp + 0x5b8], 5
push eax
mov edx, esi
lea ecx, [esp + 0x34]
call fcn.0047cd70
add esp, 4
mov byte [esp + 0x5b8], 7
mov ecx, ebx
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e0aac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], 0
jne 0x4e0b25
push str.password
lea ecx, [esp + 0x24]
call fcn.00471bb0
lea eax, [esp + 0x30]
mov byte [esp + 0x5b8], 8
push eax
lea edx, [esp + 0x24]
mov ecx, esi
call fcn.0047cbf0
add esp, 4
mov byte [esp + 0x5b8], 7
mov edx, dword [esp + 0x20]
test al, al
mov ecx, ebx
sete byte [esp + 0x13]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e0b0b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [esp + 0x13], 0
je 0x4e0b25
push 0x86
push str.ptptptinstinstinst
lea ecx, [esp + 0x38]
call fcn.004725a0
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4e0b41
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x20], eax
lea edx, [esp + 0x20]
mov byte [esp + 0x5b8], 9
lea ecx, [esp + 0x30]
call fcn.0047db90
mov edi, dword [esp + 0x20]
cmp dword [edi - 4], 1
jle 0x4e0b7e
push dword [edi - 0xc]
lea ecx, [esp + 0x24]
call fcn.0047e0e0
mov edi, dword [esp + 0x20]
mov edx, edi
lea ecx, [esp + 0x14]
call fcn.0047bf50
push eax
mov ecx, 0x57a284
mov byte [esp + 0x5bc], 0xa
call fcn.00473a30
mov byte [esp + 0x5b8], 9
mov ecx, ebx
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e0bc1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str._nozip
lea ecx, [esp + 0x18]
call fcn.00471bb0
lea eax, [esp + 0x14]
mov byte [esp + 0x5b8], 0xb
push eax
mov edx, esi
lea ecx, [esp + 0x20]
call fcn.0047cd70
add esp, 4
push eax
mov ecx, 0x57a270
mov byte [esp + 0x5bc], 0xc
call fcn.00473a30
mov byte [esp + 0x5b8], 0xb
mov ecx, ebx
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e0c22
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x5b8], 9
mov ecx, ebx
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e0c47
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x57a270]
cmp dword [eax - 0xc], 0
jne 0x4e0ca0
push str.nozip
lea ecx, [esp + 0x18]
call fcn.00471bb0
push 0x57a270
lea edx, [esp + 0x18]
mov byte [esp + 0x5bc], 0xd
mov ecx, esi
call fcn.0047cbf0
mov byte [esp + 0x5bc], 9
add esp, 4
mov edx, dword [esp + 0x14]
mov ecx, ebx
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e0ca0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str._baseInstaller
lea ecx, [esp + 0x18]
call fcn.00471bb0
lea eax, [esp + 0x14]
mov byte [esp + 0x5b8], 0xe
push eax
mov edx, esi
lea ecx, [esp + 0x20]
call fcn.0047cd70
add esp, 4
push eax
mov ecx, 0x57a278
mov byte [esp + 0x5bc], 0xf
call fcn.00473a30
mov byte [esp + 0x5b8], 0xe
mov ecx, ebx
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e0d01
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x5b8], 9
mov ecx, ebx
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e0d26
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str._fallbackfolder
lea ecx, [esp + 0x18]
call fcn.00471bb0
lea eax, [esp + 0x14]
mov byte [esp + 0x5b8], 0x10
push eax
mov edx, esi
lea ecx, [esp + 0x20]
call fcn.0047cd70
add esp, 4
push eax
mov ecx, 0x57a2e4
mov byte [esp + 0x5bc], 0x11
call fcn.00473a30
mov byte [esp + 0x5b8], 0x10
mov ecx, ebx
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e0d87
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x5b8], 9
mov ecx, ebx
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e0dac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x54d150
push 0x54df00
mov ecx, 0x57a2e4
call fcn.00473670
push str.installer_init
lea ecx, [esp + 0x30]
call fcn.00471bb0
mov byte [esp + 0x5b8], 0x12
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x4e0e18
push str._prepareuninstall
push eax
call fcn.004eaf4e
add esp, 8
test eax, eax
je 0x4e0e18
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
je 0x4e0e18
push 0x13
push str.preuninstaller_init
lea ecx, [esp + 0x34]
mov dword [0x57a0a0], 1
call fcn.004725a0
jmp 0x4e0ec6
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x4e0e57
push str.executeuninstall
push eax
call fcn.004eaf4e
add esp, 8
test eax, eax
je 0x4e0e57
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
je 0x4e0e57
push 0x10
push str.uninstaller_init
lea ecx, [esp + 0x34]
mov dword [0x57a0a0], 2
call fcn.004725a0
jmp 0x4e0ec6
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x4e0e8b
push str.executebg
push eax
call fcn.004eaf4e
add esp, 8
test eax, eax
je 0x4e0e8b
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
je 0x4e0e8b
mov dword [0x57a0a0], 3
push str.bg_init
jmp 0x4e0ebd
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x4e0ec6
push str.executenotification
push eax
call fcn.004eaf4e
add esp, 8
test eax, eax
je 0x4e0ec6
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
je 0x4e0ec6
mov dword [0x57a0a0], 4
push str.notfication_init
lea ecx, [esp + 0x30]
call fcn.00471e60
push dword [0x57a0a0]
lea eax, [esp + 0x28]
push dword [esp + 0x28]
push str._s__d
push eax
call fcn.00472d30
add esp, 0x10
lea eax, [esp + 0x39c]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x4e152f
lea eax, [esp + 0x39c]
push eax
lea ecx, [esp + 0x18]
call fcn.00471bb0
mov byte [esp + 0x5b8], 0x13
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 0xc]
test eax, eax
je 0x4e150a
add eax, 0xfffffffc
lea ecx, [esp + 0x14]
push eax
push 0
lea eax, [esp + 0x20]
push eax
call fcn.00475f50
mov byte [esp + 0x5b8], 0x14
mov edx, dword [eax]
mov esi, dword [0x57a2cc]
add esi, 0xfffffff0
lea ecx, [edx - 0x10]
cmp ecx, esi
je 0x4e0f9c
cmp dword [esi + 0xc], 0
jl 0x4e0f8e
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x4e0f8e
call fcn.00471fb0
mov dword [esp + 0x1c], eax
lea edx, [esi + 0xc]
mov ecx, ebx
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4e0f84
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0x10
mov dword [0x57a2cc], eax
jmp 0x4e0f9c
push dword [edx - 0xc]
mov ecx, 0x57a2cc
push edx
call fcn.004725a0
mov byte [esp + 0x5b8], 0x13
mov ecx, ebx
mov edx, dword [esp + 0x18]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e0fc1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x57a2cc]
mov esi, dword [0x57a2d8]
add esi, 0xfffffff0
lea edx, [eax - 0x10]
mov dword [esp + 0x18], edx
cmp edx, esi
je 0x4e1025
cmp dword [esi + 0xc], 0
jl 0x4e1017
mov edx, dword [edx]
cmp edx, dword [esi]
jne 0x4e1017
mov ecx, dword [esp + 0x18]
call fcn.00471fb0
mov dword [esp + 0x18], eax
lea edx, [esi + 0xc]
mov ecx, ebx
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4e100d
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0x10
mov dword [0x57a2d8], eax
jmp 0x4e1025
push dword [eax - 0xc]
mov ecx, 0x57a2d8
push eax
call fcn.004725a0
push 0xb
push str._splash.png
mov ecx, 0x57a2cc
call fcn.0047a5d0
push 0xb
push str._splash.swf
mov ecx, 0x57a2d8
call fcn.0047a5d0
sub esp, 0xc
lea ecx, [esp + 0x48]
push dword [0x57a2cc]
call fcn.00479090
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
cmp dword [esp + eax + 0x48], 0
mov dword [esp + eax + 0x3c], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [esp + 0x3c]
sete byte [esp + 0x13]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [esp + ecx + 0x38], eax
cmp dword [esp + 0x9c], 0
mov dword [esp + 0x4c], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
je 0x4e10bf
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x90]
cmp dword [eax], ecx
jne 0x4e10bf
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
sub edx, ecx
mov dword [eax], ecx
mov eax, dword [esp + 0x68]
mov dword [eax], ecx
mov eax, dword [esp + 0x78]
mov dword [eax], edx
cmp byte [esp + 0x98], 0
je 0x4e10d2
lea ecx, [esp + 0x4c]
call fcn.00479fc0
mov esi, dword [esp + 0x80]
mov dword [esp + 0x4c], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
test esi, esi
je 0x4e1105
mov ecx, dword [esi]
test ecx, ecx
je 0x4e10fc
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x4e10fc
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
push esi
call fcn.004e98a6
add esp, 4
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x3c], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [esp + ecx + 0x38], eax
lea eax, [esp + 0xac]
push eax
mov dword [esp + 0xb0], vtable.std::ios_base.0
call fcn.0050944b
add esp, 4
cmp byte [esp + 0x13], 0
jne 0x4e11a2
mov eax, dword [0x57a2cc]
cmp dword [eax - 0xc], 0
lea edx, [eax - 0x10]
mov esi, dword [edx]
je 0x4e11a2
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x4e1180
cmp dword [eax - 8], 0
jge 0x4e116d
push 0x80070057
call fcn.004712d0
mov dword [eax - 0xc], 0
xor ecx, ecx
mov eax, dword [0x57a2cc]
mov word [eax], cx
jmp 0x4e11a2
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4e1193
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [0x57a2cc], eax
sub esp, 0xc
lea ecx, [esp + 0x48]
push dword [0x57a2d8]
call fcn.00479090
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
cmp dword [esp + eax + 0x48], 0
mov dword [esp + eax + 0x3c], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [esp + 0x3c]
sete byte [esp + 0x13]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [esp + ecx + 0x38], eax
cmp dword [esp + 0x9c], 0
mov dword [esp + 0x4c], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
je 0x4e121a
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x90]
cmp dword [eax], ecx
jne 0x4e121a
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
sub edx, ecx
mov dword [eax], ecx
mov eax, dword [esp + 0x68]
mov dword [eax], ecx
mov eax, dword [esp + 0x78]
mov dword [eax], edx
cmp byte [esp + 0x98], 0
je 0x4e122d
lea ecx, [esp + 0x4c]
call fcn.00479fc0
mov esi, dword [esp + 0x80]
mov dword [esp + 0x4c], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
test esi, esi
je 0x4e1260
mov ecx, dword [esi]
test ecx, ecx
je 0x4e1257
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x4e1257
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
push esi
call fcn.004e98a6
add esp, 4
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x3c], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [esp + ecx + 0x38], eax
lea eax, [esp + 0xac]
push eax
mov dword [esp + 0xb0], vtable.std::ios_base.0
call fcn.0050944b
add esp, 4
cmp byte [esp + 0x13], 0
jne 0x4e12fd
mov eax, dword [0x57a2d8]
cmp dword [eax - 0xc], 0
lea edx, [eax - 0x10]
mov esi, dword [edx]
je 0x4e12fd
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x4e12db
cmp dword [eax - 8], 0
jge 0x4e12c8
push 0x80070057
call fcn.004712d0
mov dword [eax - 0xc], 0
xor ecx, ecx
mov eax, dword [0x57a2d8]
mov word [eax], cx
jmp 0x4e12fd
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4e12ee
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [0x57a2d8], eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x14]
mov eax, dword [eax - 0xc]
add eax, 0xfffffffc
push eax
push 0
lea eax, [esp + 0x24]
push eax
call fcn.00475f50
mov byte [esp + 0x5b8], 0x15
mov edx, dword [eax]
mov esi, dword [0x57a2ec]
add esi, 0xfffffff0
lea ecx, [edx - 0x10]
cmp ecx, esi
je 0x4e1379
cmp dword [esi + 0xc], 0
jl 0x4e136b
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x4e136b
call fcn.00471fb0
mov dword [esp + 0x18], eax
lea edx, [esi + 0xc]
mov ecx, ebx
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4e1361
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0x10
mov dword [0x57a2ec], eax
jmp 0x4e1379
push dword [edx - 0xc]
mov ecx, 0x57a2ec
push edx
call fcn.004725a0
mov byte [esp + 0x5b8], 0x13
mov ecx, ebx
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e139e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 9
push str._icon.ico
mov ecx, 0x57a2ec
call fcn.0047a5d0
sub esp, 0xc
lea ecx, [esp + 0x48]
push dword [0x57a2ec]
call fcn.00479090
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
cmp dword [esp + eax + 0x48], 0
mov dword [esp + eax + 0x3c], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [esp + 0x3c]
sete byte [esp + 0x13]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [esp + ecx + 0x38], eax
cmp dword [esp + 0x9c], 0
mov dword [esp + 0x4c], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
je 0x4e1427
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x90]
cmp dword [eax], ecx
jne 0x4e1427
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
sub edx, ecx
mov dword [eax], ecx
mov eax, dword [esp + 0x68]
mov dword [eax], ecx
mov eax, dword [esp + 0x78]
mov dword [eax], edx
cmp byte [esp + 0x98], 0
je 0x4e143a
lea ecx, [esp + 0x4c]
call fcn.00479fc0
mov esi, dword [esp + 0x80]
mov dword [esp + 0x4c], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
test esi, esi
je 0x4e146d
mov ecx, dword [esi]
test ecx, ecx
je 0x4e1464
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x4e1464
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
push esi
call fcn.004e98a6
add esp, 4
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x3c], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [esp + ecx + 0x38], eax
lea eax, [esp + 0xac]
push eax
mov dword [esp + 0xb0], vtable.std::ios_base.0
call fcn.0050944b
add esp, 4
cmp byte [esp + 0x13], 0
jne 0x4e150a
mov eax, dword [0x57a2ec]
cmp dword [eax - 0xc], 0
lea edx, [eax - 0x10]
mov esi, dword [edx]
je 0x4e150a
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x4e14e8
cmp dword [eax - 8], 0
jge 0x4e14d5
push 0x80070057
call fcn.004712d0
mov dword [eax - 0xc], 0
xor ecx, ecx
mov eax, dword [0x57a2ec]
mov word [eax], cx
jmp 0x4e150a
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4e14fb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [0x57a2ec], eax
mov byte [esp + 0x5b8], 0x12
mov ecx, ebx
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e152f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, dword [0x57a288]
mov esi, esp
add ecx, 0xfffffff0
mov dword [esp + 0x1c], esp
call fcn.00471fb0
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x5bc], 0x16
push dword [0x57a0a0]
push ecx
mov ecx, dword [esp + 0x30]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.00471fb0
add eax, 0x10
lea ecx, [esp + 0x190]
mov dword [esi], eax
mov byte [esp + 0x5c4], 0x12
call fcn.004c9920
push ecx
mov byte [esp + 0x5bc], 0x17
mov esi, esp
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.00471fb0
add eax, 0x10
lea ecx, [esp + 0x188]
mov dword [esi], eax
call fcn.004ca110
test al, al
jne 0x4e15b7
mov esi, 0xa
jmp 0x4e193e
lea ecx, [esp + 0x2c]
call fcn.00474b90
mov ecx, 0x57a27c
call fcn.00477880
test al, al
jne 0x4e16d0
push str.failed_to_create_log_file
lea ecx, [esp + 0x18]
call fcn.00471bb0
push ecx
mov byte [esp + 0x5bc], 0x18
mov ecx, esp
mov dword [esp + 0xfc], esp
push 0x54c730
call fcn.00471bb0
mov byte [esp + 0x5bc], 0x19
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4e1620
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x1c], esi
lea eax, [esp + 0x18]
mov byte [esp + 0x5bc], 0x1a
push eax
lea edx, [esp + 0x20]
lea ecx, [esp + 0x24]
call fcn.00472fc0
add esp, 4
mov byte [esp + 0x5bc], 0x1b
mov ecx, eax
mov byte [esp + 0x5bc], 0x1d
call fcn.00474300
mov byte [esp + 0x5bc], 0x1c
add esp, 4
mov edx, dword [esp + 0x1c]
mov ecx, ebx
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e168a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [esp + 0x5b8], 0x18
mov ecx, ebx
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e16ab
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x5b8], 0x17
mov ecx, ebx
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e16d0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push ecx
lea ecx, [esp + 0x188]
call fcn.004d12b0
test eax, eax
jne 0x4e1771
push str.CreateBrowserDialog
lea ecx, [esp + 0x2c]
call fcn.00471bb0
lea ecx, [esp + 0x18]
mov byte [esp + 0x5b8], 0x1e
call fcn.0047cff0
mov edx, eax
mov byte [esp + 0x5b8], 0x1f
lea ecx, [esp + 0x28]
call fcn.00473f80
mov byte [esp + 0x5b8], 0x1e
mov ecx, ebx
mov edx, dword [esp + 0x18]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e1742
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x5b8], 0x17
mov ecx, ebx
mov edx, dword [esp + 0x28]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e1767
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, 0xb
jmp 0x4e193e
mov esi, dword [esp + 0x28]
mov byte [esp + 0x14], 1
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x4e17ab
push str._nosplash
push eax
call fcn.004eaf4e
add esp, 8
test eax, eax
je 0x4e17ab
sub eax, dword [esi]
xor edx, edx
mov ecx, dword [esp + 0x14]
sar eax, 1
cmp eax, 0xffffffff
movzx ecx, cl
cmovne ecx, edx
mov dword [esp + 0x14], ecx
mov eax, dword [0x57a2d8]
cmp dword [eax - 0xc], 0
je 0x4e17c9
call fcn.004e8c70
test al, al
jne 0x4e17c9
mov ecx, 0x57a2d8
call fcn.00471aa0
sub esp, 8
lea ecx, [esp + 0x2ac]
call fcn.0049a9d0
mov byte [esp + 0x5b8], 0x20
mov eax, dword [0x57a2d8]
cmp dword [eax - 0xc], 0
je 0x4e1859
mov eax, dword [0x57a0a0]
cmp eax, 1
je 0x4e1859
cmp eax, 3
je 0x4e1859
cmp eax, 4
je 0x4e1859
cmp byte [esp + 0x14], 0
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
je 0x4e185f
push ecx
call esi
push eax
lea ecx, [esp + 0x2ac]
call fcn.004e9360
cmp byte [esp + 0x308], 0
je 0x4e184b
lea ecx, [esp + 0x2cc]
call fcn.0049cc30
test al, al
je 0x4e184b
lea eax, [esp + 0x2cc]
mov byte [esp + 0x14], 0
mov dword [esp + 0x258], eax
jmp 0x4e185f
lea ecx, [esp + 0x2a4]
call fcn.0049adb0
jmp 0x4e185f
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
lea ecx, [esp + 0x134]
call fcn.004db850
mov byte [esp + 0x5b8], 0x21
mov eax, dword [0x57a0a0]
cmp eax, 1
je 0x4e18b8
cmp eax, 3
je 0x4e18b8
cmp eax, 4
je 0x4e18b8
cmp byte [esp + 0x14], 0
je 0x4e18b8
push ecx
call esi
push eax
lea ecx, [esp + 0x13c]
call fcn.004e9300
lea ecx, [esp + 0x15c]
call fcn.004dba40
lea eax, [esp + 0x15c]
mov dword [esp + 0x258], eax
lea ecx, [esp + 0x184]
call fcn.004ccc30
call fcn.004e6420
lea ecx, [esp + 0xfc]
call fcn.004de900
call fcn.004deba0
push dword [esp + 0x188]
call dword [sym.imp.USER32.dll_IsWindow]
mov esi, dword [sym.imp.USER32.dll_DestroyWindow]
test eax, eax
je 0x4e18fa
push dword [esp + 0x188]
call esi
push dword [esp + 0x20c]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4e1914
push dword [esp + 0x20c]
call esi
lea ecx, [esp + 0x134]
mov byte [esp + 0x5b8], 0x20
xor esi, esi
call fcn.004db960
lea ecx, [esp + 0x2a4]
mov byte [esp + 0x5b8], 0x17
call fcn.0049ac50
lea ecx, [esp + 0x184]
mov byte [esp + 0x5b8], 0x12
call fcn.004c9dc0
mov byte [esp + 0x5b8], 9
mov ecx, ebx
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e1977
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [esp + 0x5b8], 7
mov ecx, ebx
lea eax, [edi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e1998
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x5b8], 3
mov ecx, ebx
mov edx, dword [esp + 0x30]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4e19bd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x5b8], 0
mov edx, dword [esp + 0x24]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x4e19e0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x10c]
test eax, eax
je 0x4e19ff
push eax
call fcn.004e9fe4
add esp, 4
mov dword [esp + 0x10c], 0
mov eax, dword [esp + 0x100]
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
test eax, eax
je 0x4e1a29
push eax
call fcn.004e9fe4
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x5b0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x598]
xor ecx, esp
call fcn.004e94b7
mov esp, ebp
pop ebp
ret