Function at 0x4103c0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x5b47f1
mov eax, dword fs:[0]
push eax
sub esp, 0x168
mov eax, dword [0x62c930]
xor eax, esp
mov dword [esp + 0x130], eax
push ebx
push esi
push edi
mov eax, dword [0x62c930]
xor eax, esp
push eax
lea eax, [esp + 0x178]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov ebx, ecx
mov ecx, dword [edi + 0x108]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
lea edx, [esp + 0xb4]
push edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], edi
call eax
mov dword [esp + 0x180], 0
mov esi, dword [edi]
mov ecx, str.selectchanged
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41045c
test dx, dx
je 0x410458
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41045c
add eax, 4
add ecx, 4
test dx, dx
jne 0x410436
xor eax, eax
jmp 0x410461
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x410688
add ebx, 0x348
push 1
push ebx
mov eax, str.tab_main
call fcn.00444820
mov esi, eax
mov eax, dword [esp + 0xb4]
mov edx, str.opt_home
mov ecx, eax
lea esp, [esp]
mov di, word [ecx]
cmp di, word [edx]
jne 0x4104b6
test di, di
je 0x4104b2
mov di, word [ecx + 2]
cmp di, word [edx + 2]
jne 0x4104b6
add ecx, 4
add edx, 4
test di, di
jne 0x410490
xor ecx, ecx
jmp 0x4104bb
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x4104ca
push ecx
call fcn.004526e0
jmp 0x410761
mov edx, str.opt_maygame
mov ecx, eax
mov di, word [ecx]
cmp di, word [edx]
jne 0x4104f7
test di, di
je 0x4104f3
mov di, word [ecx + 2]
cmp di, word [edx + 2]
jne 0x4104f7
add ecx, 4
add edx, 4
test di, di
jne 0x4104d1
xor ecx, ecx
jmp 0x4104fc
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x41050c
push 1
call fcn.004526e0
jmp 0x410761
mov ecx, str.opt_optimize
lea eax, [esp + 0xb4]
call fcn.00444230
test al, al
je 0x410532
mov esi, dword [esp + 0x1c]
add esi, 0xffffffdc
call fcn.00410310
jmp 0x410761
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x108]
mov edx, dword [ecx]
mov edx, dword [edx + 0x38]
lea eax, [esp + 0x2c]
push eax
call edx
mov byte [esp + 0x180], 1
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x28]
call fcn.004016c0
mov byte [esp + 0x180], 3
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x30]
cmp eax, ecx
je 0x410579
push eax
call fcn.0058622f
add esp, 4
mov edx, dword [esp + 0x24]
push edx
call fcn.005839bc
add esp, 4
mov edi, 1
push edi
mov esi, eax
push ebx
mov eax, str.tab_mygame_select_page
call fcn.00444820
mov ebx, dword [esp + 0x1c]
test esi, esi
jle 0x4105d2
mov ecx, dword [ebx + 0x65c]
cmp esi, ecx
jg 0x4105d2
cmp esi, edi
je 0x4105bf
nop
cmp edi, ecx
jg 0x4105bb
inc edi
cmp edi, esi
jne 0x4105b0
jmp 0x4105bf
cmp edi, esi
jne 0x4105d2
cmp edi, ecx
jg 0x4105d2
lea ecx, [edi - 1]
test ecx, ecx
jl 0x4105d2
push ecx
mov esi, eax
call fcn.004526e0
lea eax, [ebx - 0x24]
push eax
call fcn.0040f890
mov dword [ebx + 0x658], eax
mov ecx, dword [ebx + 0x638]
sub ecx, dword [ebx + 0x634]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
test eax, eax
jge 0x410610
fadd qword [0x610e98]
fdiv qword [0x610e90]
sub esp, 8
fstp qword [esp]
call fcn.00584bb0
add esp, 8
call fcn.00589860
mov ecx, dword [ebx + 0x658]
cmp ecx, eax
jl 0x410649
mov ecx, dword [ebx + 0x608]
mov edx, dword [ecx]
mov eax, dword [edx + 0xec]
push 1
call eax
push 0
jmp 0x410662
cmp ecx, 1
jg 0x410672
mov ecx, dword [ebx + 0x608]
mov edx, dword [ecx]
mov eax, dword [edx + 0xec]
push 0
call eax
push 1
mov ecx, dword [ebx + 0x60c]
mov edx, dword [ecx]
mov eax, dword [edx + 0xec]
call eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x180], 0
call fcn.004177a0
jmp 0x410761
mov eax, dword [esp + 0xb4]
mov ecx, str.lib_detail
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4106ba
test dx, dx
je 0x4106b6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4106ba
add eax, 4
add ecx, 4
test dx, dx
jne 0x410694
xor eax, eax
jmp 0x4106bf
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x410761
mov ecx, str.link
mov eax, esi
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4106f6
test dx, dx
je 0x4106f2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4106f6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4106d0
xor eax, eax
jmp 0x4106fb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x410761
mov eax, dword [edi + 0x108]
cmp dword [eax + 0x6d8], 0
jle 0x410715
add eax, 0x75c
jmp 0x410717
xor eax, eax
lea ecx, [esp + 0x30]
xor edx, edx
mov dword [esp + 0x2c], ecx
mov word [esp + 0x30], dx
mov eax, dword [eax]
push 0xffffffffffffffff
push eax
lea esi, [esp + 0x34]
call fcn.00444050
mov ecx, dword [esp + 0x2c]
push 5
push 0
push 0
push ecx
push 0x602cbc
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x30]
cmp eax, edx
je 0x410761
push eax
call fcn.0058622f
add esp, 4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
call fcn.00409c90
mov eax, dword [esp + 0xb4]
lea ecx, [esp + 0xb8]
cmp eax, ecx
je 0x41078a
push eax
call fcn.0058622f
add esp, 4
mov ecx, dword [esp + 0x178]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x130]
xor ecx, esp
call fcn.005832f8
mov esp, ebp
pop ebp
ret 4