Function at 0x4a8420
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5154e5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x138
mov eax, dword [0x5594e8]
xor eax, dword [ebp + 4]
push ebx
xor ebx, ebx
push esi
mov esi, ecx
push edi
lea ecx, [esi + 0x880]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x34], esi
mov dword [esi], fcn.004a7570
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], ebx
mov dword [esi + 0x838], ebx
mov dword [esi + 0x83c], ebx
mov dword [esi + 0x840], ebx
mov dword [esi + 0x844], 0x408f4000
mov dword [esi + 0x848], ebx
mov dword [esi + 0x84c], ebx
mov dword [esi + 0x850], ebx
mov dword [esi + 0x854], ebx
mov dword [esi + 0x858], ebx
mov dword [esi + 0x85c], ebx
mov dword [esi + 0x860], ebx
mov dword [esi + 0x864], ebx
mov dword [esi + 0x868], ebx
mov dword [esi + 0x86c], ebx
mov dword [esi + 0x870], ebx
mov dword [esi + 0x874], ebx
mov dword [esi + 0x878], ebx
mov dword [esi + 0x87c], ebx
call fcn.004ba6e0
push str.unknown
lea ecx, [esi + 0x8b4]
mov dword [esp + 0x150], ebx
mov dword [esi + 0x8a8], ebx
call fcn.00402110
lea ecx, [esi + 0x8d0]
mov byte [esp + 0x14c], 1
mov dword [esi + 0x8b8], ebx
mov dword [esi + 0x8bc], ebx
mov dword [esi + 0x8c0], ebx
mov dword [esi + 0x8c4], ebx
mov dword [esi + 0x8c8], ebx
mov byte [esi + 0x8cc], 1
call fcn.00476300
mov byte [esp + 0x14c], 2
mov dword [0x55cd0c], esi
call fcn.004fd868
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x24], eax
mov eax, str.Do_NOT_modify_this_file_unless_you_are_explicitly_instructed_to_do_so_
mov byte [esp + 0x14c], 3
lea edi, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4a8580
sub eax, edi
push eax
push str.Do_NOT_modify_this_file_unless_you_are_explicitly_instructed_to_do_so_
lea ecx, [esp + 0x2c]
call fcn.00401ee0
lea eax, [esp + 0x18]
push eax
call fcn.0041b8c0
push str.CI3Xmas.cfg
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x15c], 4
call fcn.0041b800
mov edx, dword [eax]
add esp, 0x10
mov ecx, esi
call fcn.004a7570
push edx
push 0x100
lea edx, [esp + 0x40]
push edx
lea edi, [eax + 4]
mov eax, dword [edi]
push 0x5245f0
push str.warning
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8609
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a862f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
cmp dword [esp + 0x10], ebx
jle 0x4a8658
lea eax, [esp + 0x38]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4a8640
sub eax, edx
push eax
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x2c]
call fcn.00401ee0
lea ecx, [esp + 0x14]
push ecx
call fcn.0041b8c0
push str.CI3Xmas.cfg
push eax
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x15c], 5
call fcn.0041b800
mov eax, dword [eax]
mov ecx, dword [edi]
add esp, 0x10
push eax
mov eax, dword [esp + 0x28]
push eax
push str.warning
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a86b1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a86d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [esp + 0x14]
push eax
mov dword [esi + 0x8b0], ebx
call fcn.0041b8c0
push str.CI3Xmas.cfg
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x15c], 6
call fcn.0041b800
mov eax, dword [eax]
mov edx, dword [esi + 0x8b0]
mov ecx, dword [edi]
add esp, 0x10
push eax
push edx
push str.debugLevel
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [esi + 0x8b0], eax
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a873e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8764
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.004fd868
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x8b0]
push eax
lea ecx, [esp + 0x1c]
push 0x525028
push ecx
mov byte [esp + 0x158], 7
call fcn.00401f80
lea edx, [esp + 0x20]
push edx
call fcn.0041b8c0
push str.CI3Xmas.cfg
push eax
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x168], 8
call fcn.0041b800
mov eax, dword [eax]
mov edx, dword [esp + 0x34]
mov ecx, dword [edi]
add esp, 0x1c
push eax
push edx
push str.debugLevel
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a87ee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8814
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a883a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [esp + 0x18]
push eax
call fcn.0041b8c0
push str.CI3Xmas.cfg
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x15c], 9
call fcn.0041b800
mov eax, dword [eax]
mov ecx, dword [edi]
add esp, 0x10
push eax
push 1
push str.debugCode
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4a8894
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a88ba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.004fd868
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push 0x525028
push ecx
mov byte [esp + 0x158], 0xa
call fcn.00401f80
lea edx, [esp + 0x18]
push edx
call fcn.0041b8c0
push str.CI3Xmas.cfg
push eax
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x168], 0xb
call fcn.0041b800
mov eax, dword [eax]
mov edx, dword [esp + 0x34]
mov ecx, dword [edi]
add esp, 0x1c
push eax
push edx
push str.debugCode
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8942
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8968
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a898e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
cmp dword [esp + 0x14], 0xd903
setne al
cmp al, bl
mov byte [esi + 0x8ac], al
je 0x4a89a9
mov dword [esi + 0x8b0], ebx
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x2c], 0xeb851eb8
mov dword [esp + 0x30], 0x3f8eb851
call fcn.0041b8c0
push str.CI3Xmas.cfg
push eax
lea ecx, [esp + 0x18]
push ecx
mov byte [esp + 0x15c], 0xc
call fcn.0041b800
mov eax, dword [eax]
mov ecx, dword [edi]
add esp, 0x10
push eax
push 0x100
lea edx, [esp + 0x40]
push edx
push 0x5245f0
push str.frameRate
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8a20
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8a46
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
cmp dword [esp + 0x14], ebx
jle 0x4a8a73
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x3c]
push 0x538958
push ecx
call fcn.004edd07
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
call fcn.004fd868
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0x20]
push str._.8lf
push edx
mov byte [esp + 0x15c], 0xd
call fcn.00401f80
lea eax, [esp + 0x20]
push eax
call fcn.0041b8c0
push str.CI3Xmas.cfg
push eax
lea ecx, [esp + 0x28]
push ecx
mov byte [esp + 0x16c], 0xe
call fcn.0041b800
mov eax, dword [eax]
mov edx, dword [esp + 0x38]
mov ecx, dword [edi]
add esp, 0x20
push eax
push edx
push str.frameRate
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8b00
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8b26
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8b4c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [esp + 0x10]
push eax
mov dword [esi + 0x830], ebx
mov dword [esi + 0x834], 0x3fe00000
call fcn.0041b8c0
push str.CI3Xmas.cfg
push eax
lea ecx, [esp + 0x18]
push ecx
mov byte [esp + 0x15c], 0xf
call fcn.0041b800
mov eax, dword [eax]
mov ecx, dword [edi]
add esp, 0x10
push eax
push 0x100
lea edx, [esp + 0x40]
push edx
push 0x5245f0
push str.maxFrameDuration
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8bc3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8be9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
cmp dword [esp + 0x14], ebx
jle 0x4a8c1a
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x3c]
push 0x538958
push ecx
call fcn.004edd07
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
add esp, 0xc
mov dword [esi + 0x830], edx
mov dword [esi + 0x834], eax
call fcn.004fd868
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x834]
mov ecx, dword [esi + 0x830]
push eax
push ecx
lea edx, [esp + 0x20]
push str._.8lf
push edx
mov byte [esp + 0x15c], 0x10
call fcn.00401f80
lea eax, [esp + 0x20]
push eax
call fcn.0041b8c0
push str.CI3Xmas.cfg
push eax
lea ecx, [esp + 0x28]
push ecx
mov byte [esp + 0x16c], 0x11
call fcn.0041b800
mov eax, dword [eax]
mov edx, dword [esp + 0x38]
mov ecx, dword [edi]
add esp, 0x20
push eax
push edx
push str.maxFrameDuration
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8cab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8cd1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8cf7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [esp + 0x10]
push eax
mov dword [esi + 0x8c8], 0xffffffff
call fcn.0041b8c0
push str.CI3Xmas.cfg
push eax
lea ecx, [esp + 0x18]
push ecx
mov byte [esp + 0x15c], 0x12
call fcn.0041b800
mov eax, dword [eax]
mov edx, dword [esi + 0x8c8]
mov ecx, dword [edi]
add esp, 0x10
push eax
push edx
push str.defaultLanguage
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [esi + 0x8c8], eax
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8d62
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8d88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.004fd868
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x8c8]
push eax
lea ecx, [esp + 0x18]
push 0x525028
push ecx
mov byte [esp + 0x158], 0x13
call fcn.00401f80
lea edx, [esp + 0x1c]
push edx
call fcn.0041b8c0
push str.CI3Xmas.cfg
push eax
lea eax, [esp + 0x24]
push eax
mov byte [esp + 0x168], 0x14
call fcn.0041b800
mov eax, dword [eax]
mov ecx, dword [edi]
mov edi, dword [esp + 0x30]
add esp, 0x1c
push eax
push edi
push str.defaultLanguage
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8e12
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x14c], 0x13
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8e38
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
add edi, 0xfffffff0
mov byte [esp + 0x14c], 3
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a8e5a
mov ecx, dword [edi]
mov edx, dword [ecx]
push edi
call dword [edx + 4]
push 0xc
call fcn.004fd765
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x14c], 0x15
je 0x4a8e7d
mov ecx, eax
call fcn.004754c0
jmp 0x4a8e7f
xor eax, eax
push ecx
mov ecx, esp
mov dword [esp + 0x10], esp
push str.Ultra_VGA_Engine_copyright__c_1994_2006_Konstantinos_Prouskas__InterAction_studios.
mov byte [esp + 0x154], 3
mov dword [esi + 0x85c], eax
call fcn.00402110
mov eax, dword [esi + 0x85c]
push eax
call fcn.00475320
add esp, 8
push str.Wed_Nov_15_23:32:45_2006
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.Version:_UveDX8_build__s
call fcn.00402110
mov ecx, dword [esi + 0x85c]
push ecx
call fcn.00475320
add esp, 0xc
mov ecx, esi
call fcn.004a7750
push 4
call fcn.004fd765
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x14c], 0x16
je 0x4a8efc
mov ecx, eax
call fcn.0044cdb0
jmp 0x4a8efe
xor eax, eax
push 0xb8
mov byte [esp + 0x150], 3
mov dword [esi + 0x860], eax
call fcn.004fd765
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x14c], 0x17
je 0x4a8f32
mov ecx, eax
call fcn.004a65f0
jmp 0x4a8f34
xor eax, eax
push 0x90
mov byte [esp + 0x150], 3
mov dword [esi + 0x878], eax
call fcn.004fd765
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x14c], 0x18
je 0x4a8f68
mov ecx, eax
call fcn.0044e610
jmp 0x4a8f6a
xor eax, eax
push 0x48
mov byte [esp + 0x150], 3
mov dword [esi + 0x870], eax
call fcn.004fd765
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x14c], 0x19
je 0x4a8f9b
mov ecx, eax
call fcn.00495c90
jmp 0x4a8f9d
xor eax, eax
push 0x70
mov byte [esp + 0x150], 3
mov dword [esi + 0x874], eax
call fcn.004fd765
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x14c], 0x1a
je 0x4a8fce
mov ecx, eax
call fcn.004b6990
jmp 0x4a8fd0
xor eax, eax
push 0x868
mov byte [esp + 0x150], 3
mov dword [esi + 0x868], eax
call fcn.004fd765
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x14c], 0x1b
je 0x4a9004
mov ecx, eax
call fcn.004b95e0
jmp 0x4a9006
xor eax, eax
push 0x88
mov byte [esp + 0x150], 3
mov dword [esi + 0x864], eax
call fcn.004fd765
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x14c], 0x1c
je 0x4a903a
mov ecx, eax
call fcn.004aa7a0
jmp 0x4a903c
xor eax, eax
push 0x80
mov byte [esp + 0x150], 3
mov dword [esi + 0x86c], eax
call fcn.004fd765
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x14c], 0x1d
je 0x4a9071
push ebx
mov ecx, eax
call fcn.0044fb30
jmp 0x4a9073
xor eax, eax
push 0xa8
mov byte [esp + 0x150], 3
mov dword [esi + 0x8a8], eax
call fcn.004fd765
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x14c], 0x1e
je 0x4a90a7
mov ecx, eax
call fcn.0041fbf0
jmp 0x4a90a9
xor eax, eax
mov edx, dword [esp + 0x2c]
mov dword [esi + 0x87c], eax
mov eax, dword [esp + 0x28]
push edx
push eax
lea ecx, [esi + 0x880]
mov byte [esp + 0x154], 3
call fcn.004ba720
xor eax, eax
lea edi, [esi + 0x2c]
mov ecx, 0x200
rep stosd dword es:[edi], eax
push str.Started.
push 0x538bf4
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str._s__:__s
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x14c], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a912e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x144]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x13c]
xor ecx, dword [ebp + 4]
mov eax, esi
call fcn.004ecf23
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret