Function at 0x412710
Capabilities:
Accept command line arguments
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x184
mov eax, dword [0x46b008]
xor eax, esp
mov dword [esp + 0x180], eax
push ebx
push esi
mov esi, dword [ebp + 0x10]
xor eax, eax
push edi
xor edi, edi
mov word [esp + 0x3c], ax
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x50], edi
lea ebx, [edi + 1]
mov dword [esp + 0x54], 7
mov dword [esp + 0x18], 0x463924
mov dword [esp + 0x1c], 0x412520
call dword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherW]
test eax, eax
je 0x41277a
xor esi, esi
jmp 0x412c89
test esi, esi
je 0x412959
cmp word [esi], di
je 0x412959
lea eax, [esp + 0x10]
push eax
push esi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov ecx, eax
test ecx, ecx
jne 0x412809
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x40]
push str._EAC_Setup___Error__CommandLineToArgvW_failed_with__i.
push eax
call fcn.004122f0
add esp, 0xc
lea eax, [esp + 0x3c]
cmp dword [esp + 0x50], 0x10
jb 0x4127c5
mov eax, dword [esp + 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [esp + 0x50]
cmp edx, 0x10
jb 0x412802
mov ecx, dword [esp + 0x3c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4127f8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412ca2
push edx
push ecx
call fcn.0041b677
add esp, 8
mov esi, ebx
jmp 0x412c89
mov eax, dword [esp + 0x10]
mov dword [esp + 0x70], ecx
mov ecx, 0x2d
mov word [esp + 0x80], cx
xor ecx, ecx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x54], 0x462b38
mov dword [esp + 0x88], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], 0xffffffff
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x64], edi
mov word [esp + 0x84], cx
mov dword [esp + 0x58], 0x10
mov dword [esp + 0x7c], ecx
cmp eax, 0x32
jle 0x412882
shl eax, 2
push eax
call fcn.004394bb
add esp, 4
mov dword [esp + 0x8c], eax
lea ecx, [esp + 0x54]
call fcn.00412ce0
test al, al
je 0x412945
jmp 0x4128a0
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x412a25
mov eax, dword [esp + 0x60]
dec eax
cmp eax, 5
ja case.default.0x4128bd
jmp dword [eax*4 + 0x412cbc]
push dword [esp + 0x78]
mov dword [esp + 0x10], 1
call fcn.00439ed2
add esp, 4
mov edi, eax
jmp 0x412934
push dword [esp + 0x78]
mov dword [esp + 0x10], 2
call fcn.00439ed2
add esp, 4
mov edi, eax
jmp 0x412934
and ebx, 0xfffffffe
mov dword [esp + 0xc], 2
or ebx, 2
jmp 0x412934
mov edx, dword [esp + 0x78]
mov ecx, edx
lea esi, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x412910
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [esp + 0x44]
call fcn.004013e0
jmp 0x412934
and ebx, 0xfffffffe
jmp 0x412934
or ebx, 4
lea ecx, [esp + 0x54]
call fcn.00412ce0
test al, al
jne 0x4128a0
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x412959
push eax
call fcn.004394b6
add esp, 4
test bl, 3
jne 0x412ab6
test edi, edi
jne 0x412ab6
lea eax, [esp + 0x24]
push str._EAC_Setup___Error__Command_line_is_missing_the_operation_with_a_valid_game_id_
push eax
call fcn.004122f0
add esp, 8
lea eax, [esp + 0x24]
cmp dword [esp + 0x38], 0x10
jb 0x41298b
mov eax, dword [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [esp + 0x38]
cmp edx, 0x10
jb 0x412aac
mov ecx, dword [esp + 0x24]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x412aa2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412ca7
jmp 0x412aa2
lea eax, [esp + 0x24]
push str._EAC_Setup___Error__Unrecognized_command_line_parameters_
push eax
call fcn.004122f0
add esp, 8
lea eax, [esp + 0x24]
cmp dword [esp + 0x38], 0x10
jb 0x4129ec
mov eax, dword [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [esp + 0x38]
cmp edx, 0x10
jb 0x412a84
mov ecx, dword [esp + 0x24]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x412a7a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412cac
jmp 0x412a7a
push eax
lea eax, [esp + 0x28]
push str._EAC_Setup___Error__Malformed_command_line_parameters___i__
push eax
call fcn.004122f0
add esp, 0xc
lea eax, [esp + 0x24]
cmp dword [esp + 0x38], 0x10
jb 0x412a47
mov eax, dword [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [esp + 0x38]
cmp edx, 0x10
jb 0x412a84
mov ecx, dword [esp + 0x24]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x412a7a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412cb1
push edx
push ecx
call fcn.0041b677
add esp, 8
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x412aac
push eax
call fcn.004394b6
add esp, 4
mov esi, 1
jmp 0x412c51
push edx
push ecx
call fcn.0041b677
add esp, 8
mov esi, 1
jmp 0x412c51
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x98]
mov dword [esp + 0x90], eax
lea eax, [esp + 0x3c]
push eax
mov dword [esp + 0x98], edi
call fcn.00403380
xor eax, eax
mov dword [esp + 0xb4], 1
mov word [esp + 0xd4], ax
mov dword [esp + 0x108], eax
mov byte [esp + 0xf8], al
mov dword [esp + 0x120], eax
mov byte [esp + 0x110], al
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], eax
lea eax, [esp + 0x130]
push eax
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 7
mov dword [esp + 0x110], 0xf
mov dword [esp + 0x128], 0xf
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
call fcn.00403f40
mov dword [esp + 0x148], eax
lea eax, [esp + 0x90]
push ebx
push dword [esp + 0x10]
fld1
mov ecx, eax
fstp dword [esp + 0xf8]
mov dword [esp + 0x158], 0
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0xf
mov byte [esp + 0x15c], 0
mov dword [esp + 0x184], 0
mov dword [esp + 0x188], 0xf
mov byte [esp + 0x174], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 8
mov byte [esp + 0xf4], 0
mov byte [esp + 0xfc], 0
mov dword [0x46d3e8], eax
call fcn.0040e280
lea ecx, [esp + 0x90]
mov esi, eax
call fcn.0040e0e0
mov edx, dword [esp + 0x50]
cmp edx, 8
jb 0x412c89
mov ecx, dword [esp + 0x3c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x412c7f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412cb6
push edx
push ecx
call fcn.0041b677
add esp, 8
mov ecx, dword [esp + 0x18c]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0041b636
mov esp, ebp
pop ebp
ret 0x10
call fcn.00436a99
call fcn.00436a99
call fcn.00436a99
call fcn.00436a99
call fcn.00436a99
nop
les ebp, [eax]
inc ecx
add ah, bl
sub byte [ecx], al
hlt