Function at 0x41bbb0
Capabilities:
Create thread

Disassembly:
mov eax, 0x120f0
call fcn.0045d1f0
mov eax, dword [0x492794]
xor eax, esp
mov dword [esp + 0x120ec], eax
push ebx
mov ebx, dword [esp + 0x120f8]
lea eax, [esp + 0x34]
push ebp
push eax
mov dword [esp + 0x18], ebx
call fcn.00402480
mov ebp, dword [0x47f300]
add esp, 4
cmp dword [esp + 0xd8], 0
jne 0x41bc0e
push 0x31
push 0x480c48
push 0x4810b8
push 0
call ebp
cmp eax, 2
jne 0x41bc0e
xor eax, eax
jmp 0x41c652
push esi
call fcn.00401080
call fcn.0044d140
call fcn.00412bb0
call fcn.00408e70
call fcn.0042eff0
call fcn.0041ce40
call fcn.004209e0
call fcn.0041db20
call fcn.0044baf0
call fcn.00408b70
call fcn.0040e4b0
call fcn.00420960
call fcn.00405620
call fcn.00407f30
call fcn.0044d0c0
call fcn.00454780
push 0x16c160
push 0x69a9d8
call fcn.004015a0
push 0x16c160
push 0x52d870
call fcn.004015a0
call fcn.0040e530
call fcn.00404a00
lea ecx, [esp + 0xc108]
push ecx
push str.E.A.G.L.S_System
push str.WindowTitle
push str.WindowState
call fcn.004010c0
lea edx, [esp + 0x6118]
push edx
push str.SOFTWARETECHARTSEAGLS
push str.GameDataKey
push str.SystemState
call fcn.004010c0
lea eax, [esp + 0x8128]
push eax
push 0x481060
push str.CDLavel
push str.SystemState
call fcn.004010c0
add esp, 0x40
lea ecx, [esp + 0xf0f8]
push ecx
push str.WAVEPACK
push str.WaveClassName
push str.SystemState
call fcn.004010c0
lea edx, [esp + 0xd108]
push edx
push str.CGPACK
push str.CGClassName
push str.SystemState
call fcn.004010c0
lea eax, [esp + 0x11118]
push eax
push str.SCPACK
push str.ScriptClassName
push str.SystemState
call fcn.004010c0
lea ecx, [esp + 0x10128]
push ecx
push str.EAGLSWAVE_
push str.CD_WaveFolderName
push str.SystemState
call fcn.004010c0
add esp, 0x40
lea edx, [esp + 0xb0f8]
push edx
push str.EAGLSCG_
push str.CD_CGFolderName
push str.SystemState
call fcn.004010c0
lea eax, [esp + 0xa108]
push eax
push str.WAVE_
push str.HD_WaveFolderName
push str.SystemState
call fcn.004010c0
lea ecx, [esp + 0x5118]
push ecx
push 0x480fb4
push str.HD_CGFolderName
push str.SystemState
call fcn.004010c0
lea edx, [esp + 0xe128]
push edx
push str.Script_
push str.HD_ScriptFolderName
push str.SystemState
call fcn.004010c0
add esp, 0x40
push 0
push str.EnableRegister
push str.SystemState
call fcn.004011d0
push str.E.A.G.L.S_System
mov esi, eax
call fcn.0041da10
add esp, 0x10
test eax, eax
je 0x41c651
test esi, esi
push edi
je 0x41c1b4
lea eax, [esp + 0x10]
push eax
push 1
push 0
lea ecx, [esp + 0x6108]
push ecx
push 0x80000002
mov dword [esp + 0x2c], 0xff
call dword [0x47f008]
test eax, eax
je 0x41be2f
push 0x480f54
call fcn.00408d80
add esp, 4
jmp 0x41c64b
mov esi, dword [0x47f004]
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x100]
push eax
lea ecx, [esp + 0x28]
push ecx
push 0
push str.InstFolder
push edx
call esi
lea eax, [esp + 0xfc]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41be60
sub eax, edx
cmp byte [esp + eax + 0xfb], 0x5c
je 0x41be93
lea edi, [esp + 0xfc]
add edi, 0xffffffff
nop
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x41be80
mov ax, word [0x47f3fc]
mov word [edi], ax
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x7100]
push edx
lea eax, [esp + 0x28]
push eax
push 0
push str.InstMode
push ecx
call esi
lea edx, [esp + 0x70fc]
push edx
call fcn.0045d22c
mov esi, eax
mov eax, dword [esp + 0x14]
add esp, 4
push eax
call dword [section..rdata]
cmp esi, 2
je 0x41bf5a
lea ecx, [esp + 0x80fc]
push ecx
lea edx, [esp + 0x3100]
push edx
push 0
call fcn.00401c60
add esp, 0xc
cmp eax, 0xff
jne 0x41bf5a
lea ebx, [ebx]
lea eax, [esp + 0xc0fc]
push eax
lea ecx, [esp + 0x9100]
push str._s_Disc1
push ecx
call fcn.0045d367
add esp, 0xc
push 1
push 0x480f04
lea edx, [esp + 0x9104]
push edx
push 0
call ebp
cmp eax, 2
je 0x41c64b
lea eax, [esp + 0x80fc]
push eax
lea ecx, [esp + 0x3100]
push ecx
push 0
call fcn.00401c60
add esp, 0xc
cmp eax, 0xff
je 0x41bf00
lea edx, [esp + 0xfc]
push edx
call dword [0x47f0e8]
mov eax, esi
sub eax, 0
je 0x41c0c4
sub eax, 1
je 0x41c024
sub eax, 1
jne 0x41c16f
jmp 0x41bf90
mov cl, byte [esp + eax + 0xfc]
mov byte [esp + eax + 0x20fc], cl
add eax, 1
test cl, cl
jne 0x41bf90
lea eax, [esp + 0xa0fc]
mov edx, eax
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41bfb0
lea edi, [esp + 0x20fc]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x41bfc5
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov cl, byte [esp + eax + 0xfc]
mov byte [esp + eax + 0x10fc], cl
add eax, 1
test cl, cl
jne 0x41bfe1
lea eax, [esp + 0x50fc]
mov edx, eax
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41c000
lea edi, [esp + 0x10fc]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x41c015
jmp 0x41c15f
xor eax, eax
jmp 0x41c030
mov cl, byte [esp + eax + 0x30fc]
mov byte [esp + eax + 0x20fc], cl
add eax, 1
test cl, cl
jne 0x41c030
lea eax, [esp + 0x100fc]
mov edx, eax
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41c050
lea edi, [esp + 0x20fc]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x41c065
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov cl, byte [esp + eax + 0xfc]
mov byte [esp + eax + 0x10fc], cl
add eax, 1
test cl, cl
jne 0x41c081
lea eax, [esp + 0x50fc]
mov edx, eax
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41c0a0
lea edi, [esp + 0x10fc]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x41c0b5
jmp 0x41c15f
xor eax, eax
jmp 0x41c0d0
mov cl, byte [esp + eax + 0x30fc]
mov byte [esp + eax + 0x20fc], cl
add eax, 1
test cl, cl
jne 0x41c0d0
lea eax, [esp + 0x100fc]
mov edx, eax
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41c0f0
lea edi, [esp + 0x20fc]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x41c105
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov cl, byte [esp + eax + 0x30fc]
mov byte [esp + eax + 0x10fc], cl
add eax, 1
test cl, cl
jne 0x41c121
lea eax, [esp + 0xb0fc]
mov edx, eax
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41c140
lea edi, [esp + 0x10fc]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x41c155
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov cl, byte [esp + eax + 0xfc]
mov byte [esp + eax + 0x40fc], cl
add eax, 1
test cl, cl
jne 0x41c171
lea eax, [esp + 0xe0fc]
mov edx, eax
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41c190
lea edi, [esp + 0x40fc]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x41c1a5
jmp 0x41c2ef
lea eax, [esp + 0xfc]
push eax
push 0xff
call dword [0x47f07c]
lea eax, [esp + 0xfc]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41c1d1
sub eax, edx
cmp byte [esp + eax + 0xfb], 0x5c
je 0x41c204
lea edi, [esp + 0xfc]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x41c1f0
mov cx, word [0x47f3fc]
mov word [edi], cx
xor eax, eax
jmp 0x41c210
mov cl, byte [esp + eax + 0xfc]
mov byte [esp + eax + 0x20fc], cl
add eax, 1
test cl, cl
jne 0x41c210
lea eax, [esp + 0xa0fc]
mov edx, eax
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41c230
lea edi, [esp + 0x20fc]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x41c245
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov cl, byte [esp + eax + 0xfc]
mov byte [esp + eax + 0x10fc], cl
add eax, 1
test cl, cl
jne 0x41c261
lea eax, [esp + 0x50fc]
mov edx, eax
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41c280
lea edi, [esp + 0x10fc]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x41c295
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov cl, byte [esp + eax + 0xfc]
mov byte [esp + eax + 0x40fc], cl
add eax, 1
test cl, cl
jne 0x41c2b1
lea eax, [esp + 0xe0fc]
mov edx, eax
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41c2d0
lea edi, [esp + 0x40fc]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x41c2e5
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea edx, [esp + 0xd0fc]
push edx
lea eax, [esp + 0x1100]
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x12118]
push ecx
push 0x452940
lea edx, [esp + 0xc10c]
push edx
mov eax, edx
push eax
push ebx
call fcn.0044e210
add esp, 0x1c
test eax, eax
mov dword [esp + 0x14], eax
je 0x41c44e
call fcn.0041efd0
call fcn.004204d0
push 1
xor edi, edi
push edi
push edi
push edi
lea ecx, [esp + 0x34]
push ecx
call dword [0x47f284]
mov ebx, dword [0x47f288]
lea edx, [esp + 0x24]
push edx
call ebx
lea eax, [esp + 0x24]
push eax
call dword [0x47f28c]
mov esi, dword [esp + 0x1c]
push edi
push 0x515a30
push 0x485ef8
push 0x800
push esi
call fcn.0045d1b0
test eax, eax
je 0x41c396
mov dword [0x515a30], edi
jmp 0x41c3f5
mov eax, dword [0x515a30]
cmp eax, edi
je 0x41c3f5
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
push edi
push 0x515a2c
push 0x485ed8
push eax
call edx
test eax, eax
je 0x41c3be
mov dword [0x515a2c], edi
jmp 0x41c3f5
mov eax, dword [0x515a2c]
cmp eax, edi
je 0x41c3f5
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push 0x4860f4
push eax
call edx
mov eax, dword [0x515a2c]
mov edx, dword [esp + 0x14]
mov ecx, dword [eax]
push 6
push edx
push eax
mov eax, dword [ecx + 0x34]
call eax
mov eax, dword [0x515a2c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x1c]
push eax
call edx
lea eax, [esp + 0xf0fc]
push eax
lea ecx, [esp + 0x2100]
push ecx
push 1
push esi
call fcn.0044cd40
add esp, 0x10
test eax, eax
je 0x41c44e
call fcn.0040e120
push 1
call fcn.004528c0
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x11100]
push edx
lea eax, [esp + 0x4104]
push eax
push ecx
call fcn.0042e4e0
add esp, 0x10
test eax, eax
jne 0x41c455
push 0x480ed0
call fcn.00408d80
add esp, 4
xor eax, eax
jmp 0x41c650
push edi
push edi
push 0x41b980
mov byte [0x515a28], 1
call fcn.0045e488
mov esi, dword [0x47f29c]
mov ebp, dword [0x47f0b8]
add esp, 0xc
push 1
push 0
push 0
push 0
lea edx, [esp + 0x34]
push edx
call dword [0x47f284]
test eax, eax
je 0x41c556
cmp dword [esp + 0x28], 0x12
je 0x41c561
mov eax, dword [0x49add8]
test eax, eax
je 0x41c4b2
lea ecx, [esp + 0x24]
push ecx
push eax
call esi
test eax, eax
jne 0x41c477
mov eax, dword [0x49addc]
test eax, eax
je 0x41c4c7
lea edx, [esp + 0x24]
push edx
push eax
call esi
test eax, eax
jne 0x41c477
mov eax, dword [0x49ade0]
test eax, eax
je 0x41c4dc
lea ecx, [esp + 0x24]
push ecx
push eax
call esi
test eax, eax
jne 0x41c477
mov eax, dword [0x49ade4]
test eax, eax
je 0x41c4f1
lea edx, [esp + 0x24]
push edx
push eax
call esi
test eax, eax
jne 0x41c477
mov eax, dword [0x49ade8]
test eax, eax
je 0x41c50a
lea ecx, [esp + 0x24]
push ecx
push eax
call esi
test eax, eax
jne 0x41c477
mov eax, dword [0x49adf4]
test eax, eax
je 0x41c523
lea edx, [esp + 0x24]
push edx
push eax
call esi
test eax, eax
jne 0x41c477
lea eax, [esp + 0x24]
push eax
call ebx
lea ecx, [esp + 0x24]
push ecx
call dword [0x47f28c]
add edi, 1
mov edx, edi
and edx, 0x80000003
jns 0x41c547
dec edx
or edx, 0xfffffffc
inc edx
jne 0x41c477
push 0xa
call ebp
jmp 0x41c477
push 0x14
xor edi, edi
call ebp
jmp 0x41c477
mov byte [0x515a28], 0
mov al, byte [0x515a28]
test al, al
jne 0x41c57f
push 0x64
call ebp
mov cl, byte [0x515a28]
test cl, cl
je 0x41c571
xor esi, esi
push esi
call fcn.0041d3b0
add esi, 1
add esp, 4
cmp esi, 5
jl 0x41c581
call fcn.0041d450
push 0
call fcn.004528c0
mov edx, dword [esp + 0x20]
push edx
call fcn.0044bb30
mov esi, dword [esp + 0x1c]
push esi
call fcn.00420a20
push esi
call fcn.0044fba0
add esp, 0x10
call fcn.0041f2a0
call fcn.00404a20
push 0x3e8
call ebp
mov eax, dword [0x515a2c]
test eax, eax
je 0x41c5ea
mov ecx, dword [eax]
mov edx, dword [ecx + 0x20]
push eax
call edx
mov eax, dword [0x515a2c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [0x515a30]
test eax, eax
je 0x41c5fb
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
call fcn.004010a0
call fcn.00412bd0
call fcn.00408e90
call fcn.0044d160
call fcn.0042f010
call fcn.0041ce60
call fcn.00420a00
call fcn.0041db40
call fcn.0044bb10
call fcn.00408b90
call fcn.0040e4d0
call fcn.00420980
call fcn.00405640
call fcn.00407f50
call fcn.0044d0e0
call fcn.00454790
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x120f4]
pop ebp
pop ebx
xor ecx, esp
call fcn.0045d1d4
add esp, 0x120f0
ret 0x10