Function at 0x40d797
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x455db2
mov eax, dword fs:[0]
push eax
sub esp, 0x314
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x318], esi
mov dword [ebp - 0x2f8], 0
xor eax, eax
mov dword [ebp - 0x2e8], 0
mov dword [ebp - 0x2e4], 7
mov word [ebp - 0x2f8], ax
push fcn.004014c0
push 0x4037d0
push 2
push 0x18
lea eax, [ebp - 0x2c8]
mov dword [ebp - 4], 1
push eax
call fcn.00420162
push 0x104
lea eax, [ebp - 0x298]
mov byte [ebp - 4], 2
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov ecx, eax
lea eax, [ecx - 1]
cmp eax, 0x102
ja 0x40d59c
lea eax, [ecx + ecx]
sar eax, 1
lea ecx, [ebp - 0x2c8]
push eax
lea eax, [ebp - 0x298]
push eax
call fcn.00401680
jmp 0x40d5c0
cmp dword [ebp - 0x2b4], 8
lea eax, [ebp - 0x2c8]
jb 0x40d5b1
mov eax, dword [ebp - 0x2c8]
xor ecx, ecx
mov dword [ebp - 0x2b8], 0
mov word [eax], cx
cmp dword [ebp - 0x2b8], 0
jne 0x40d5e7
push fcn.004014c0
push 2
push 0x18
lea eax, [ebp - 0x2c8]
mov byte [ebp - 4], 1
push eax
call fcn.0042004d
jmp 0x40d6de
lea eax, [ebp - 0x2b0]
xor dl, dl
push eax
xor ecx, ecx
call fcn.0041f580
add esp, 4
test al, al
je 0x40d5c9
lea esi, [ebp - 0x78]
xor ebx, ebx
mov dword [ebp - 0x320], esi
lea edi, [ebp - 0x2c8]
nop
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x40d61a
mov eax, dword [edi]
push 0
push 0x80
push 3
push 0
push 7
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x31c], eax
cmp eax, 0xffffffff
je 0x40d6bf
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
push dword [ebp - 0x31c]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x40d6bf
mov esi, dword [ebp - 0x320]
inc ebx
add esi, 0x34
add edi, 0x18
mov dword [ebp - 0x320], esi
cmp ebx, 2
jb 0x40d610
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x28]
jne 0x40d690
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x18]
jne 0x40d690
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x14]
jne 0x40d690
mov bl, 1
jmp 0x40d692
xor bl, bl
push fcn.004014c0
push 2
push 0x18
lea eax, [ebp - 0x2c8]
mov byte [ebp - 4], 1
push eax
call fcn.0042004d
mov esi, dword [ebp - 0x318]
mov byte [esi + 0x64], bl
test bl, bl
je 0x40d6e2
mov eax, 0x466a5c
jmp 0x40d6e7
push fcn.004014c0
push 2
push 0x18
lea eax, [ebp - 0x2c8]
mov byte [ebp - 4], 1
push eax
call fcn.0042004d
mov esi, dword [ebp - 0x318]
mov byte [esi + 0x64], 0
mov eax, 0x466a64
push eax
lea eax, [ebp - 0x2b0]
push str._EAC_Setup___Info__Started_from_service_directory:__s.
push eax
call fcn.004123f0
add esp, 0xc
lea eax, [ebp - 0x2b0]
cmp dword [ebp - 0x29c], 8
jb 0x40d711
mov eax, dword [ebp - 0x2b0]
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push eax
call edi
mov edx, dword [ebp - 0x29c]
cmp edx, 8
jb 0x40d75a
mov ecx, dword [ebp - 0x2b0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40d750
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40def2
push edx
push ecx
call fcn.0041fbbf
add esp, 8
mov ecx, dword [ebp + 0xc]
test cl, 1
je 0x40d783
test cl, 4
je 0x40d76b
mov byte [esi + 0x5c], 1
lea eax, [ebp - 0x2f8]
mov ecx, esi
push eax
push dword [ebp + 8]
call fcn.0040e450
mov ebx, eax
jmp 0x40daea
mov eax, dword [ebp + 8]
dec eax
cmp eax, 5
ja case.0x40d790.3
jmp dword [eax*4 + 0x40df20]
lea eax, [ebp - 0x2f8]
mov ecx, esi
push eax
push dword [esi + 4]
call fcn.0040ff20
mov ebx, eax
jmp 0x40daea
lea eax, [ebp - 0x2f8]
test cl, 3
push eax
setne al
mov ecx, esi
movzx eax, al
push eax
push 0
push dword [esi + 4]
call fcn.00410790
mov ebx, eax
jmp 0x40daea
mov dword [ebp - 0x2e0], 0
xor eax, eax
mov dword [ebp - 0x2d0], 0
mov dword [ebp - 0x2cc], 7
mov word [ebp - 0x2e0], ax
mov byte [ebp - 4], 4
lea eax, [ebp - 0x2f8]
cmp dword [ebp - 0x2e4], 8
jb 0x40d813
mov eax, dword [ebp - 0x2f8]
xor ecx, ecx
mov dword [ebp - 0x2e8], 0
mov word [eax], cx
mov dl, 1
lea eax, [ebp - 0x2e0]
push eax
call fcn.0041f580
add esp, 4
test al, al
jne 0x40d8f0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x2b0]
push str.GetServiceImagePathByType_failed_with__i
push eax
call fcn.004123f0
add esp, 0xc
lea ecx, [ebp - 0x2f8]
push eax
call fcn.00403700
mov edx, dword [ebp - 0x29c]
cmp edx, 8
jb 0x40d8a2
mov ecx, dword [ebp - 0x2b0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40d898
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40def7
push edx
push ecx
call fcn.0041fbbf
add esp, 8
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x2cc]
cmp edx, 8
jb 0x40d8e6
mov ecx, dword [ebp - 0x2e0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40d8dc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40defc
push edx
push ecx
call fcn.0041fbbf
add esp, 8
mov ebx, 4
jmp 0x40daf9
cmp byte [esi + 0x64], 0
jne 0x40d959
lea edx, [ebp - 0x2f8]
lea ecx, [ebp - 0x2e0]
call fcn.00411420
test al, al
jne 0x40d959
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x2cc]
cmp edx, 8
jb 0x40d8e6
mov ecx, dword [ebp - 0x2e0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40d945
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40defc
push edx
push ecx
call fcn.0041fbbf
add esp, 8
mov ebx, 4
jmp 0x40daf9
mov edx, dword [ebp - 0x2cc]
cmp edx, 8
jb 0x40d999
mov ecx, dword [ebp - 0x2e0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40d98f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40defc
push edx
push ecx
call fcn.0041fbbf
add esp, 8
xor ebx, ebx
jmp 0x40de96
lea eax, [ebp - 0x2f8]
push eax
push dword [esi + 4]
call fcn.00411160
mov ebx, eax
jmp 0x40daea
lea eax, [ebp - 0x2f8]
push eax
push dword [esi + 4]
call fcn.00411160
mov ebx, eax
test ebx, ebx
je 0x40da7e
call fcn.0040fe20
test al, al
jne 0x40da7e
push dword [esi + 4]
lea eax, [ebp - 0x90]
push str.install__i__console
push 0x40
push eax
call fcn.004064a0
add esp, 0x10
lea ecx, [ebp - 0x90]
call fcn.0040fad0
test eax, eax
jne 0x40da0b
xor ebx, ebx
jmp 0x40de96
push eax
lea eax, [ebp - 0x2b0]
push str._EAC_Setup___Error__Elevated_process_failed_in_installing_the_service_post_verification__code:__i.
push eax
call fcn.004123f0
add esp, 0xc
lea eax, [ebp - 0x2b0]
cmp dword [ebp - 0x29c], 8
jb 0x40da35
mov eax, dword [ebp - 0x2b0]
push eax
call edi
mov edx, dword [ebp - 0x29c]
cmp edx, 8
jb 0x40daf9
mov ecx, dword [ebp - 0x2b0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40da72
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40df01
push edx
push ecx
call fcn.0041fbbf
add esp, 8
jmp 0x40daf9
lea eax, [ebp - 0x2b0]
push str._EAC_Setup___Error__Game_already_installed__no_installation_required__and_as_such_no_elevation.
push eax
call fcn.004123f0
add esp, 8
lea eax, [ebp - 0x2b0]
cmp dword [ebp - 0x29c], 8
jb 0x40daa7
mov eax, dword [ebp - 0x2b0]
push eax
call edi
mov edx, dword [ebp - 0x29c]
cmp edx, 8
jb 0x40daea
mov ecx, dword [ebp - 0x2b0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40dae0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40df06
push edx
push ecx
call fcn.0041fbbf
add esp, 8
test ebx, ebx
je 0x40de96
jmp 0x40daf9
mov ebx, 1
cmp dword [ebp - 0x2e4], 8
lea eax, [ebp - 0x2f8]
jb 0x40db0e
mov eax, dword [ebp - 0x2f8]
push eax
push ebx
lea eax, [ebp - 0x2b0]
push str._EAC_Setup___Error__Result:__i_ErrorMsg:__s.
push eax
call fcn.004123f0
add esp, 0x10
lea eax, [ebp - 0x2b0]
cmp dword [ebp - 0x29c], 8
jb 0x40db39
mov eax, dword [ebp - 0x2b0]
push eax
call edi
mov edx, dword [ebp - 0x29c]
cmp edx, 8
jb 0x40db7c
mov ecx, dword [ebp - 0x2b0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40db72
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40df0b
push edx
push ecx
call fcn.0041fbbf
add esp, 8
cmp ebx, 7
jne 0x40de96
mov dword [ebp - 0x310], 0
push 6
push 0x465e44
lea ecx, [ebp - 0x310]
mov dword [ebp - 0x300], 0
mov dword [ebp - 0x2fc], 0xf
mov byte [ebp - 0x310], 0
mov byte [ebp - 4], 1
call fcn.00401940
mov dword [ebp - 0x2b0], 0
push 0x12
push str.setup.error_prefix
lea ecx, [ebp - 0x2b0]
mov dword [ebp - 0x2a0], 0
mov dword [ebp - 0x29c], 0xf
mov byte [ebp - 0x2b0], 0
mov byte [ebp - 4], 6
call fcn.00401940
sub esp, 0x18
mov byte [ebp - 4], 8
lea eax, [ebp - 0x2b0]
mov ecx, esp
push eax
call fcn.00403b00
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x2e0]
push eax
lea ecx, [esi + 0x68]
call fcn.00403220
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x29c]
cmp edx, 0x10
jb 0x40dc64
mov ecx, dword [ebp - 0x2b0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40dc5a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40df10
push edx
push ecx
call fcn.0041fbbf
add esp, 8
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x2fc]
cmp edx, 0x10
jb 0x40dca2
mov ecx, dword [ebp - 0x310]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40dc98
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40df10
push edx
push ecx
call fcn.0041fbbf
add esp, 8
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x300], 0
mov dword [ebp - 0x2fc], 0xf
mov byte [ebp - 0x310], 0
test eax, eax
je 0x40dd61
mov ecx, dword [ebp - 0x2cc]
lea esi, [ebp - 0x2e0]
mov edx, dword [ebp - 0x2e0]
cmp ecx, 8
setae byte [ebp - 0x311]
jb 0x40dceb
mov esi, edx
cmp word [esi + eax*2 - 2], 0x2e
jne 0x40dd3b
lea ecx, [eax - 1]
cmp ecx, eax
ja 0x40dd19
cmp byte [ebp - 0x311], 0
lea eax, [ebp - 0x2e0]
je 0x40dd0b
mov eax, edx
xor edx, edx
mov dword [ebp - 0x2d0], ecx
mov word [eax + ecx*2], dx
jmp 0x40dd29
sub ecx, eax
push 0
push ecx
lea ecx, [ebp - 0x2e0]
call fcn.00401790
mov edx, dword [ebp - 0x2e0]
mov eax, dword [ebp - 0x2d0]
mov ecx, dword [ebp - 0x2cc]
test eax, eax
je 0x40dd61
lea esi, [ebp - 0x2e0]
cmp ecx, 8
jb 0x40dd4c
mov esi, edx
cmp word [esi + eax*2 - 2], 0x3a
je 0x40dd61
push 0x3a
lea ecx, [ebp - 0x2e0]
call fcn.004035d0
push 0x20
lea ecx, [ebp - 0x2e0]
call fcn.004035d0
cmp dword [ebp - 0x2e4], 8
lea edx, [ebp - 0x2f8]
mov esi, dword [ebp - 0x2e8]
jb 0x40dd89
mov edx, dword [ebp - 0x2f8]
mov ecx, dword [ebp - 0x2cc]
mov eax, ecx
mov edi, dword [ebp - 0x2d0]
sub eax, edi
cmp esi, eax
ja 0x40dde5
lea eax, [esi + edi]
mov dword [ebp - 0x2d0], eax
lea eax, [ebp - 0x2e0]
mov dword [ebp - 0x318], eax
cmp ecx, 8
jb 0x40ddc3
mov eax, dword [ebp - 0x2e0]
mov dword [ebp - 0x318], eax
lea ecx, [eax + edi*2]
lea eax, [esi + esi]
push eax
push edx
push ecx
call fcn.00437380
mov ecx, dword [ebp - 0x318]
lea eax, [esi + edi]
add esp, 0xc
xor edx, edx
mov word [ecx + eax*2], dx
jmp 0x40ddf9
push esi
push edx
push dword [ebp - 0x31c]
lea ecx, [ebp - 0x2e0]
push esi
call fcn.004045d0
mov edx, dword [ebp - 0x2cc]
lea esi, [ebp - 0x2e0]
mov ecx, dword [ebp - 0x2e0]
cmp edx, 8
jb 0x40de12
mov esi, ecx
mov eax, dword [ebp - 0x2d0]
cmp word [esi + eax*2 - 2], 0x21
je 0x40de39
push 0x21
lea ecx, [ebp - 0x2e0]
call fcn.004035d0
mov edx, dword [ebp - 0x2cc]
mov ecx, dword [ebp - 0x2e0]
lea eax, [ebp - 0x2e0]
cmp edx, 8
jb 0x40de46
mov eax, ecx
push 0x10
push str.EAC_Setup
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov edx, dword [ebp - 0x2cc]
cmp edx, 8
jb 0x40de96
mov ecx, dword [ebp - 0x2e0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40de8c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40df15
push edx
push ecx
call fcn.0041fbbf
add esp, 8
mov edx, dword [ebp - 0x2e4]
cmp edx, 8
jb 0x40ded2
mov ecx, dword [ebp - 0x2f8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40dec8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40df1a
push edx
push ecx
call fcn.0041fbbf
add esp, 8
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041fb7c
mov esp, ebp
pop ebp
ret 8
call fcn.00439d3f
call fcn.00439d3f
call fcn.00439d3f
call fcn.00439d3f
call fcn.00439d3f
call fcn.00439d3f
call fcn.00439d3f
call fcn.00439d3f
call fcn.00439d3f
nop
xchg edi, eax
xlatb
inc eax
add byte [edi - 0xbffbf29], ch
fiadd dword [eax]
mov al, byte [0xb60040d9]
fld dword [eax]
rcl edi, cl
inc eax
add ah, cl
int3