Function at 0x4414f0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x493157
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x27bc
call fcn.00478630
mov eax, dword [0x4ae680]
xor eax, esp
mov dword [esp + 0x27b8], eax
push ebx
push esi
push edi
mov eax, dword [0x4ae680]
xor eax, esp
push eax
lea eax, [esp + 0x27d0]
mov dword fs:[0], eax
mov edi, ecx
mov esi, edi
call fcn.0043a650
call fcn.0044c190
lea ebx, [edi + 0x7c]
xor esi, esi
push esi
mov ecx, ebx
call fcn.0044d7c0
call fcn.0044c190
mov dword [eax + 0x2a8], 1
mov eax, dword [ebx]
push 0x49b083
push eax
call fcn.00476a04
add esp, 8
cmp eax, esi
sete al
test al, al
je 0x441616
push str.CmdsRecord_
call fcn.0044c190
add eax, 0x260
push eax
lea eax, [esp + 0x24]
push eax
call fcn.004070a0
add esp, 0xc
push 0x49d814
push eax
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x27e4], esi
call fcn.004070a0
add esp, 0xc
push eax
mov ecx, ebx
mov byte [esp + 0x27dc], 1
call fcn.004077a0
mov byte [esp + 0x27d8], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4415eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x27d8], 0xffffffff
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x441616
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.0044c190
push esi
push esi
push edi
push 0x4431e0
push esi
push esi
mov dword [eax + 0x2b8], esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
lea ecx, [esp + 0x24]
push ecx
call fcn.00436170
mov dword [esp + 0x27d8], 2
call fcn.0045ded3
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x441660
push 0x80004005
call fcn.00407700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
mov byte [esp + 0x27d8], 3
call fcn.0044c190
add eax, 0x268
mov eax, dword [eax]
push 0x49aa48
push eax
call fcn.00476a04
add esp, 8
cmp eax, esi
sete al
lea ecx, [esp + 0x10]
test al, al
je 0x4416a8
push 0x1e
push str.___________________In_the_save
jmp 0x4416af
push 0x1a
push 0x49aa84
call fcn.00407670
mov eax, dword [esp + 0x10]
push 0x1e
push 2
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x20], esp
mov esi, esp
push eax
mov dword [esp + 0x24], eax
call fcn.00407730
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea esi, [esp + 0x30]
call fcn.00401060
mov ecx, esi
call fcn.0045dc27
call fcn.0044c190
cmp dword [eax + 0x2b8], 0
je 0x44173a
call fcn.0044c190
add eax, 0x268
mov eax, dword [eax]
push 0x49aa48
push eax
call fcn.00476a04
add esp, 8
test eax, eax
sete al
push 0
mov ecx, edi
push 0x49aaa0
test al, al
je 0x44172e
push str._____Save_complete_
call fcn.00457734
jmp 0x441772
push 0x49aac4
call fcn.00457734
jmp 0x441772
call fcn.0044c190
add eax, 0x268
mov eax, dword [eax]
push 0x49aa48
push eax
call fcn.00476a04
add esp, 8
test eax, eax
sete al
push 0
push 0
test al, al
je 0x441768
push str.Save_Fail_
jmp 0x44176d
push 0x49aae0
call fcn.0045ee8a
mov dword [esp + 0xac], vtable.CCmdsMag.0
mov byte [esp + 0x27d8], 4
movzx ecx, byte [edi + 0xbd]
mov eax, dword [ebx]
push ecx
push ecx
sub eax, 0x10
mov dword [esp + 0x20], esp
mov esi, esp
push eax
call fcn.00407730
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0040fb10
movzx edx, byte [edi + 0xb5]
mov eax, dword [ebx]
push edx
push ecx
sub eax, 0x10
mov dword [esp + 0x20], esp
mov esi, esp
push eax
call fcn.00407730
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0040f8f0
mov eax, dword [ebx]
add edi, 0x10d0
push edi
push ecx
sub eax, 0x10
mov dword [esp + 0x20], esp
mov esi, esp
push eax
call fcn.00407730
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0040fa20
mov eax, dword [esp + 0x14]
mov byte [esp + 0x27d8], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44181e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x27d8], 0xffffffff
call fcn.00436270
mov ecx, dword [esp + 0x27d0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x27b8]
xor ecx, esp
call fcn.00476352
mov esp, ebp
pop ebp
ret