Function at 0x44d1f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d9c57
mov eax, dword fs:[0]
push eax
sub esp, 0x4d8
mov eax, dword [0x51d260]
xor eax, esp
mov dword [esp + 0x4d0], eax
push ebx
push esi
push edi
mov eax, dword [0x51d260]
xor eax, esp
push eax
lea eax, [esp + 0x4e8]
mov dword fs:[0], eax
xor esi, esi
or eax, 0xffffffff
mov edi, ecx
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], esi
mov dword [esp + 0xc8], esi
mov dword [esp + 0xcc], esi
mov dword [esp + 0xd0], esi
mov dword [esp + 0xb4], esi
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
push 0x3ff
mov dword [esp + 0x98], eax
lea eax, [esp + 0xe1]
push esi
push eax
mov dword [esp + 0x4fc], esi
mov dword [esp + 0x1c], esi
mov byte [esp + 0xe8], 0
call fcn.004a0350
add esp, 0xc
lea eax, [edi + 0x1444]
lea ecx, [edi + 0x5820]
push eax
call fcn.00421640
cmp dword [edi + 0x87ff0], esi
mov dword [esp + 0x14], esi
jle 0x44d353
lea esp, [esp]
mov ecx, dword [edi + 0x87fec]
mov edx, dword [esp + 0x14]
mov ebx, dword [ecx + edx*4]
lea esi, [ebx + 0x358]
push esi
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
cmp dword [ebx + 0x348], 1
push esi
jne 0x44d33c
xor eax, eax
mov dword [ebx + 0x348], eax
mov dword [ebx + 0x34c], eax
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov eax, dword [ebx + 0x318]
push 0
push 0
push 0x12
push eax
call dword [sym.imp.user32.dll_PostThreadMessageA]
push 0xa
call dword [sym.imp.kernel32.dll_Sleep]
mov ecx, ebx
call fcn.00463230
jmp 0x44d342
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x14]
inc eax
cmp eax, dword [edi + 0x87ff0]
mov dword [esp + 0x14], eax
jl 0x44d2e0
lea esi, [edi + 0x87eec]
mov ecx, esi
call fcn.00462960
mov ecx, esi
call fcn.004629c0
mov ecx, esi
call fcn.00462a20
mov ebx, dword [edi + 0x1464]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], 0
test ebx, ebx
jle 0x44d40a
lea esi, [edi + 0x1448]
mov edi, edi
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
call fcn.0040e4d0
cmp dword [eax], 0
je 0x44d3fd
lea edx, [esp + 0x14]
push edx
mov ecx, esi
call fcn.0040e4d0
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call fcn.0040e4d0
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
call fcn.0040e4d0
lea edx, [esp + 0x14]
push edx
mov ecx, esi
call fcn.0040e4d0
mov ebx, dword [eax]
test ebx, ebx
je 0x44d3e7
mov ecx, ebx
call fcn.0040bd90
push ebx
call fcn.0048f8b2
add esp, 4
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call fcn.0040e4d0
mov ebx, dword [esp + 0x28]
mov dword [eax], 0
mov eax, dword [esp + 0x14]
inc eax
cmp eax, ebx
mov dword [esp + 0x14], eax
jl 0x44d390
mov eax, dword [edi + 0xb1c]
mov ecx, dword [edi + 0xb14]
test eax, eax
je 0x44d432
cmp eax, 4
jl 0x44d432
push 4
push ecx
lea ecx, [esp + 0x9c]
push ecx
call fcn.004a2300
add esp, 0xc
mov eax, dword [edi + 0xb1c]
mov ecx, dword [edi + 0xb14]
test eax, eax
je 0x44d45a
cmp eax, 8
jl 0x44d45a
push 4
add ecx, 4
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.004a2300
add esp, 0xc
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + 0xb1c]
mov ecx, dword [edi + 0xb14]
add ebx, 8
test eax, eax
je 0x44d48a
lea edx, [ebx + 4]
cmp eax, edx
jl 0x44d48a
push 4
add ecx, ebx
push ecx
lea eax, [esp + 0x18]
push eax
call fcn.004a2300
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ecx
add ebx, 4
call fcn.004a208f
mov ecx, dword [edi + 0xb14]
mov esi, eax
mov eax, dword [edi + 0xb1c]
add esp, 4
test eax, eax
je 0x44d4c7
mov edx, dword [esp + 0x10]
add edx, ebx
cmp eax, edx
jl 0x44d4c7
mov eax, dword [esp + 0x10]
push eax
add ecx, ebx
push ecx
push esi
call fcn.004a2300
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ecx
lea edx, [esp + 0xe0]
push esi
push edx
call fcn.004a1ac0
lea eax, [esp + 0xe8]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x44d4e7
sub eax, edx
push eax
lea eax, [esp + 0xe0]
push eax
lea ecx, [edi + 0x88244]
call fcn.004018a0
add ebx, dword [esp + 0x10]
push esi
call fcn.004a2159
mov eax, dword [edi + 0xb1c]
mov ecx, dword [edi + 0xb14]
add esp, 4
test eax, eax
je 0x44d53a
lea edx, [ebx + 4]
cmp eax, edx
jl 0x44d53a
push 4
add ecx, ebx
push ecx
lea eax, [esp + 0x18]
push eax
call fcn.004a2300
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0xb1c]
lea ebx, [ebx + ecx + 4]
mov ecx, dword [edi + 0xb14]
test eax, eax
je 0x44d56b
lea edx, [ebx + 4]
cmp eax, edx
jl 0x44d56b
push 4
add ecx, ebx
push ecx
lea eax, [esp + 0x18]
push eax
call fcn.004a2300
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ecx
add ebx, 4
call fcn.004a208f
mov ecx, dword [edi + 0xb1c]
mov edx, dword [edi + 0xb14]
add esp, 4
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x44d5aa
mov esi, dword [esp + 0x10]
add esi, ebx
cmp ecx, esi
jl 0x44d5aa
mov ecx, dword [esp + 0x10]
push ecx
add edx, ebx
push edx
push eax
call fcn.004a2300
add esp, 0xc
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 8]
add ebx, dword [esp + 0x10]
push edx
xor esi, esi
push esi
push eax
call fcn.004a0350
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], esi
mov dword [edi + 0x18], esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [edi + 0x10]
add ecx, esi
add esp, 0xc
cmp dword [edi + 0xc], ecx
jge 0x44d604
jmp 0x44d5e0
add dword [edi + 0xc], 0x400
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 8]
push eax
push edx
call fcn.004a1e25
mov dword [edi + 8], eax
mov eax, dword [edi + 0x10]
add eax, esi
add esp, 8
cmp dword [edi + 0xc], eax
jl 0x44d5e0
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x10]
push esi
push ecx
add edx, eax
push edx
call fcn.004a2300
add dword [edi + 0x10], esi
mov eax, dword [edi]
mov edx, dword [eax + 4]
add dword [edi + 0x14], esi
add esp, 0xc
mov ecx, edi
call edx
mov eax, dword [esp + 0x14]
push eax
call fcn.004a2159
mov eax, dword [edi + 0x89b20]
add esp, 4
cmp eax, 1
jne 0x44d64f
lea ecx, [edi + 0x86e80]
call fcn.00472600
jmp 0x44d65e
test eax, eax
jne 0x44d65e
lea ecx, [edi + 0x86e80]
call fcn.00472670
mov eax, dword [edi + 0x8707c]
push eax
push 0
lea ecx, [edi + 0x87068]
call fcn.00401480
mov eax, dword [edi + 0xb1c]
mov ecx, dword [edi + 0xb14]
test eax, eax
je 0x44d69b
lea edx, [ebx + 4]
cmp eax, edx
jl 0x44d69b
push 4
add ecx, ebx
push ecx
lea eax, [esp + 0x18]
push eax
call fcn.004a2300
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ecx
add ebx, 4
call fcn.004a208f
mov ecx, dword [edi + 0xb1c]
mov edx, dword [edi + 0xb14]
add esp, 4
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x44d6da
mov esi, dword [esp + 0x10]
add esi, ebx
cmp ecx, esi
jl 0x44d6da
mov ecx, dword [esp + 0x10]
push ecx
add edx, ebx
push edx
push eax
call fcn.004a2300
add esp, 0xc
mov edx, dword [edi + 0x87ef8]
mov eax, dword [edi + 0x87ef4]
add ebx, dword [esp + 0x10]
push edx
xor esi, esi
push esi
push eax
call fcn.004a0350
mov dword [edi + 0x87efc], esi
mov dword [edi + 0x87f00], esi
mov dword [edi + 0x87f04], esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [edi + 0x87efc]
add ecx, esi
add esp, 0xc
cmp dword [edi + 0x87ef8], ecx
jge 0x44d756
lea ecx, [ecx]
add dword [edi + 0x87ef8], 0x400
mov eax, dword [edi + 0x87ef8]
mov edx, dword [edi + 0x87ef4]
push eax
push edx
call fcn.004a1e25
mov dword [edi + 0x87ef4], eax
mov eax, dword [edi + 0x87efc]
add eax, esi
add esp, 8
cmp dword [edi + 0x87ef8], eax
jl 0x44d720
mov eax, dword [edi + 0x87ef4]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x87efc]
push esi
push ecx
add edx, eax
push edx
call fcn.004a2300
mov eax, dword [esp + 0x20]
add dword [edi + 0x87efc], esi
add dword [edi + 0x87f00], esi
push eax
call fcn.004a2159
mov eax, dword [edi + 0xb1c]
mov ecx, dword [edi + 0xb14]
add esp, 0x10
test eax, eax
je 0x44d7b2
lea edx, [ebx + 4]
cmp eax, edx
jl 0x44d7b2
push 4
add ecx, ebx
push ecx
lea eax, [esp + 0x18]
push eax
call fcn.004a2300
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ecx
add ebx, 4
call fcn.004a208f
mov ecx, dword [edi + 0xb1c]
mov edx, dword [edi + 0xb14]
add esp, 4
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x44d7f1
mov esi, dword [esp + 0x10]
add esi, ebx
cmp ecx, esi
jl 0x44d7f1
mov ecx, dword [esp + 0x10]
push ecx
add edx, ebx
push edx
push eax
call fcn.004a2300
add esp, 0xc
mov edx, dword [edi + 0x86e8c]
mov eax, dword [edi + 0x86e88]
add ebx, dword [esp + 0x10]
lea esi, [edi + 0x86e80]
push edx
push 0
push eax
mov dword [esp + 0x34], esi
call fcn.004a0350
xor eax, eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x10]
add ecx, eax
add esp, 0xc
cmp dword [esi + 0xc], ecx
mov dword [esp + 0x18], eax
jge 0x44d866
jmp 0x44d840
add dword [esi + 0xc], 0x400
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
push eax
push edx
call fcn.004a1e25
mov dword [esi + 8], eax
mov eax, dword [esi + 0x10]
add eax, dword [esp + 0x20]
add esp, 8
cmp dword [esi + 0xc], eax
jl 0x44d840
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esi + 0x10]
push edx
add ecx, eax
push ecx
call fcn.004a2300
mov eax, dword [esp + 0x24]
add dword [esi + 0x10], eax
add dword [esi + 0x14], eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
add esp, 0xc
mov ecx, esi
call eax
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004a2159
mov eax, dword [edi + 0xb1c]
mov ecx, dword [edi + 0xb14]
add esp, 4
test eax, eax
je 0x44d8ca
lea edx, [ebx + 4]
cmp eax, edx
jl 0x44d8ca
push 4
add ecx, ebx
push ecx
lea eax, [esp + 0x18]
push eax
call fcn.004a2300
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ecx
add ebx, 4
call fcn.004a208f
mov ecx, dword [edi + 0xb1c]
mov edx, dword [edi + 0xb14]
add esp, 4
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x44d909
mov esi, dword [esp + 0x10]
add esi, ebx
cmp ecx, esi
jl 0x44d909
mov ecx, dword [esp + 0x10]
push ecx
add edx, ebx
push edx
push eax
call fcn.004a2300
add esp, 0xc
mov edx, dword [edi + 0x87334]
mov eax, dword [edi + 0x87330]
add ebx, dword [esp + 0x10]
lea esi, [edi + 0x87328]
push edx
push 0
push eax
call fcn.004a0350
xor eax, eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x10]
add ecx, eax
add esp, 0xc
cmp dword [esi + 0xc], ecx
mov dword [esp + 0x18], eax
jge 0x44d976
jmp 0x44d950
add dword [esi + 0xc], 0x400
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
push eax
push edx
call fcn.004a1e25
mov dword [esi + 8], eax
mov eax, dword [esi + 0x10]
add eax, dword [esp + 0x20]
add esp, 8
cmp dword [esi + 0xc], eax
jl 0x44d950
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esi + 0x10]
push edx
add ecx, eax
push ecx
call fcn.004a2300
mov eax, dword [esp + 0x24]
add dword [esi + 0x10], eax
add dword [esi + 0x14], eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
add esp, 0xc
mov ecx, esi
call eax
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004a2159
mov eax, dword [edi + 0xb1c]
mov ecx, dword [edi + 0xb14]
add esp, 4
test eax, eax
je 0x44d9da
lea edx, [ebx + 4]
cmp eax, edx
jl 0x44d9da
push 4
add ecx, ebx
push ecx
lea eax, [esp + 0x18]
push eax
call fcn.004a2300
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ecx
add ebx, 4
call fcn.004a208f
mov ecx, dword [edi + 0xb1c]
mov edx, dword [edi + 0xb14]
add esp, 4
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x44da19
mov esi, dword [esp + 0x10]
add esi, ebx
cmp ecx, esi
jl 0x44da19
mov ecx, dword [esp + 0x10]
push ecx
add edx, ebx
push edx
push eax
call fcn.004a2300
add esp, 0xc
mov edx, dword [edi + 0x87198]
mov eax, dword [edi + 0x87194]
add ebx, dword [esp + 0x10]
lea esi, [edi + 0x8718c]
push edx
push 0
push eax
call fcn.004a0350
xor eax, eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x10]
add ecx, eax
add esp, 0xc
cmp dword [esi + 0xc], ecx
mov dword [esp + 0x18], eax
jge 0x44da86
jmp 0x44da60
add dword [esi + 0xc], 0x400
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
push eax
push edx
call fcn.004a1e25
mov dword [esi + 8], eax
mov eax, dword [esi + 0x10]
add eax, dword [esp + 0x20]
add esp, 8
cmp dword [esi + 0xc], eax
jl 0x44da60
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esi + 0x10]
push edx
add ecx, eax
push ecx
call fcn.004a2300
mov eax, dword [esp + 0x24]
add dword [esi + 0x10], eax
add dword [esi + 0x14], eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
add esp, 0xc
mov ecx, esi
call eax
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004a2159
mov eax, dword [edi + 0xb1c]
mov ecx, dword [edi + 0xb14]
add esp, 4
test eax, eax
je 0x44daea
lea edx, [ebx + 4]
cmp eax, edx
jl 0x44daea
push 4
add ecx, ebx
push ecx
lea eax, [esp + 0x18]
push eax
call fcn.004a2300
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ecx
add ebx, 4
call fcn.004a208f
mov ecx, dword [edi + 0xb14]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0xb1c]
add esp, 4
test eax, eax
je 0x44db2d
mov edx, dword [esp + 0x10]
add edx, ebx
cmp eax, edx
jl 0x44db2d
mov eax, dword [esp + 0x10]
push eax
add ecx, ebx
push ecx
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004a2300
add esp, 0xc
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add ebx, dword [esp + 0x10]
push edx
push 0
push eax
call fcn.004a0350
xor eax, eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x10]
add ecx, eax
add esp, 0xc
cmp dword [esi + 0xc], ecx
mov dword [esp + 0x18], eax
jge 0x44db86
add dword [esi + 0xc], 0x400
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
push eax
push edx
call fcn.004a1e25
mov dword [esi + 8], eax
mov eax, dword [esi + 0x10]
add eax, dword [esp + 0x20]
add esp, 8
cmp dword [esi + 0xc], eax
jl 0x44db60
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esi + 0x10]
push edx
add ecx, eax
push ecx
call fcn.004a2300
mov eax, dword [esp + 0x24]
add dword [esi + 0x10], eax
add dword [esi + 0x14], eax
add esp, 0xc
mov ecx, esi
call fcn.00434e70
mov edx, dword [esp + 0x14]
push edx
call fcn.004a2159
mov eax, dword [edi + 0xb1c]
mov ecx, dword [edi + 0xb14]
add esp, 4
test eax, eax
je 0x44dbe8
lea edx, [ebx + 4]
cmp eax, edx
jl 0x44dbe8
push 4
add ecx, ebx
push ecx
lea eax, [esp + 0x18]
push eax
call fcn.004a2300
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ecx
add ebx, 4
call fcn.004a208f
mov ecx, dword [edi + 0xb1c]
mov edx, dword [edi + 0xb14]
add esp, 4
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x44dc27
mov esi, dword [esp + 0x10]
add esi, ebx
cmp ecx, esi
jl 0x44dc27
mov ecx, dword [esp + 0x10]
push ecx
add edx, ebx
push edx
push eax
call fcn.004a2300
add esp, 0xc
mov edx, dword [edi + 0x87264]
mov eax, dword [edi + 0x87260]
add ebx, dword [esp + 0x10]
lea esi, [edi + 0x87258]
push edx
push 0
push eax
call fcn.004a0350
xor eax, eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x10]
add ecx, eax
add esp, 0xc
cmp dword [esi + 0xc], ecx
mov dword [esp + 0x18], eax
jge 0x44dc96
jmp 0x44dc70
add dword [esi + 0xc], 0x400
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
push eax
push edx
call fcn.004a1e25
mov dword [esi + 8], eax
mov eax, dword [esi + 0x10]
add eax, dword [esp + 0x20]
add esp, 8
cmp dword [esi + 0xc], eax
jl 0x44dc70
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esi + 0x10]
push edx
add ecx, eax
push ecx
call fcn.004a2300
mov eax, dword [esp + 0x24]
add dword [esi + 0x10], eax
add dword [esi + 0x14], eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
add esp, 0xc
mov ecx, esi
call eax
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004a2159
mov eax, dword [edi + 0xb1c]
mov ecx, dword [edi + 0xb14]
add esp, 4
test eax, eax
je 0x44dcfa
lea edx, [ebx + 4]
cmp eax, edx
jl 0x44dcfa
push 4
add ecx, ebx
push ecx
lea eax, [esp + 0x18]
push eax
call fcn.004a2300
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ecx
add ebx, 4
call fcn.004a208f
mov ecx, dword [edi + 0xb14]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0xb1c]
add esp, 4
test eax, eax
je 0x44dd3d
mov edx, dword [esp + 0x10]
add edx, ebx
cmp eax, edx
jl 0x44dd3d
mov eax, dword [esp + 0x10]
push eax
add ecx, ebx
push ecx
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004a2300
add esp, 0xc
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add ebx, dword [esp + 0x10]
push edx
push 0
push eax
call fcn.004a0350
xor eax, eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x10]
add ecx, eax
add esp, 0xc
cmp dword [esi + 0xc], ecx
mov dword [esp + 0x18], eax
jge 0x44dd96
add dword [esi + 0xc], 0x400
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
push eax
push edx
call fcn.004a1e25
mov dword [esi + 8], eax
mov eax, dword [esi + 0x10]
add eax, dword [esp + 0x20]
add esp, 8
cmp dword [esi + 0xc], eax
jl 0x44dd70
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esi + 0x10]
push edx
add ecx, eax
push ecx
call fcn.004a2300
mov eax, dword [esp + 0x24]
add dword [esi + 0x10], eax
add dword [esi + 0x14], eax
add esp, 0xc
mov ecx, esi
call fcn.00435050
mov edx, dword [esp + 0x14]
push edx
call fcn.004a2159
mov eax, dword [edi + 0xb1c]
mov ecx, dword [edi + 0xb14]
add esp, 4
test eax, eax
je 0x44ddf8
lea edx, [ebx + 4]
cmp eax, edx
jl 0x44ddf8
push 4
add ecx, ebx
push ecx
lea eax, [esp + 0x18]
push eax
call fcn.004a2300
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ecx
add ebx, 4
call fcn.004a208f
mov ecx, dword [edi + 0xb1c]
mov edx, dword [edi + 0xb14]
add esp, 4
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x44de37
mov esi, dword [esp + 0x10]
add esi, ebx
cmp ecx, esi
jl 0x44de37
mov ecx, dword [esp + 0x10]
push ecx
add edx, ebx
push edx
push eax
call fcn.004a2300
add esp, 0xc
mov edx, dword [edi + 0x5878]
mov eax, dword [edi + 0x5874]
lea esi, [edi + 0x586c]
push edx
xor ebx, ebx
push ebx
push eax
call fcn.004a0350
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x10]
add ecx, ebx
add esp, 0xc
cmp dword [esi + 0xc], ecx
jge 0x44de94
lea ecx, [ecx]
add dword [esi + 0xc], 0x400
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
push eax
push edx
call fcn.004a1e25
mov dword [esi + 8], eax
mov eax, dword [esi + 0x10]
add eax, ebx
add esp, 8
cmp dword [esi + 0xc], eax
jl 0x44de70
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [esi + 0x10]
push ebx
push ecx
add edx, eax
push edx
call fcn.004a2300
add dword [esi + 0x10], ebx
add dword [esi + 0x14], ebx
mov eax, dword [esi]
mov edx, dword [eax + 4]
add esp, 0xc
mov ecx, esi
call edx
mov eax, dword [esp + 0x14]
push eax
call fcn.004a2159
add esp, 4
lea ecx, [edi + 0x5820]
call fcn.00414b80
mov ecx, dword [edi + 0x5ec]
push ecx
lea ecx, [edi + 0x1444]
call fcn.0040c900
mov edx, dword [edi + 0xaf4]
push edx
lea ecx, [edi + 0x41a4]
call fcn.00437620
mov eax, dword [edi + 0x873a0]
test eax, eax
je 0x44df08
push eax
mov ecx, edi
call fcn.004356c0
xor eax, eax
cmp dword [edi + 0x5924], eax
mov dword [edi + 0x8a0c4], eax
mov dword [esp + 0x14], eax
jle 0x44e16f
lea esi, [edi + 0x58dc]
jmp 0x44df30
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x9c]
push ecx
mov ecx, esi
call fcn.0041f320
mov ebx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x18]
mov dword [esp + 0xd8], eax
mov eax, dword [esi]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], edx
test ebx, ebx
je 0x44df65
cmp ebx, eax
je 0x44df6a
call fcn.004a067d
mov ecx, dword [esp + 0xd8]
cmp dword [esp + 0x24], ecx
je 0x44e15a
jmp 0x44df80
test ebx, ebx
jne 0x44e10d
call fcn.004a067d
xor eax, eax
mov esi, dword [esp + 0x24]
cmp esi, dword [eax + 0x18]
jne 0x44df9d
call fcn.004a067d
mov eax, dword [esi + 0x10]
mov dword [esp + 0x18], eax
test eax, eax
jl 0x44e022
mov edx, dword [edi + 0x594c]
sub edx, dword [edi + 0x5948]
sar edx, 2
cmp eax, edx
jb 0x44dfc0
call fcn.004a067d
mov eax, dword [edi + 0x5948]
mov ecx, dword [esp + 0x18]
mov esi, dword [eax + ecx*4]
cmp dword [esi + 0xd4], 1
jne 0x44e00f
lea ebx, [edi + 0x89bc0]
lea ecx, [esi + 0xd8]
mov dword [ebx], 1
call fcn.0042c4c0
push ebx
push esi
lea eax, [edi + 0x1444]
push eax
lea ecx, [edi + 0x5820]
mov dword [esi + 0x1e8], 0
call fcn.0042c8c0
mov ebx, dword [esp + 0x20]
cmp dword [esi + 0x24c], 0xffffffff
je 0x44e022
mov dword [edi + 0x8a0c4], 1
cmp dword [esp + 0x18], 0xfffffb2e
je 0x44e0e0
test ebx, ebx
jne 0x44e114
call fcn.004a067d
xor eax, eax
mov edx, dword [esp + 0x24]
cmp edx, dword [eax + 0x18]
jne 0x44e04d
call fcn.004a067d
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 0x14]
push 1
push eax
lea ecx, [edi + 0x1444]
call fcn.0040fac0
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x44e11b
call fcn.004a067d
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x44e07f
call fcn.004a067d
mov ecx, dword [edi + 0x594c]
sub ecx, dword [edi + 0x5948]
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 0x10]
sar ecx, 2
cmp esi, ecx
jb 0x44e09e
call fcn.004a067d
mov edx, dword [edi + 0x5948]
mov eax, dword [edx + esi*4]
lea ecx, [eax + 0xa4]
push ecx
lea ecx, [eax + 0x7c]
call fcn.0040e4d0
mov edx, dword [eax]
mov eax, dword [esp + 0x18]
mov dword [eax + 0xe0], edx
test ebx, ebx
jne 0x44e122
call fcn.004a067d
mov esi, dword [esp + 0x24]
cmp esi, dword [ebx + 0x18]
jne 0x44e0d9
call fcn.004a067d
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x20], ecx
lea ecx, [esp + 0x20]
call fcn.00419da0
mov ecx, dword [edi + 0x58f4]
mov eax, dword [ecx + 4]
cmp byte [eax + 0x41], 0
mov dword [esp + 0x18], ecx
jne 0x44e12f
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0xc]
jge 0x44e126
mov dword [esp + 0x18], eax
mov eax, dword [eax]
jmp 0x44e129
mov eax, dword [ebx]
jmp 0x44df8f
mov eax, dword [ebx]
jmp 0x44e03f
mov eax, dword [ebx]
jmp 0x44e075
mov ebx, dword [ebx]
jmp 0x44e0cb
mov eax, dword [eax + 8]
cmp byte [eax + 0x41], 0
je 0x44e100
mov ebx, dword [esp + 0x20]
mov eax, dword [edi + 0x58dc]
lea esi, [edi + 0x58dc]
test ebx, ebx
je 0x44e147
cmp ebx, eax
je 0x44e14c
call fcn.004a067d
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x24], edx
jne 0x44df80
mov eax, dword [esp + 0x14]
inc eax
cmp eax, dword [edi + 0x5924]
mov dword [esp + 0x14], eax
jl 0x44df30
mov ebx, dword [edi + 0x86e70]
cmp ebx, dword [edi + 0x86e74]
jbe 0x44e182
call fcn.004a067d
mov esi, dword [edi + 0x86e64]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebx
mov ebx, dword [edi + 0x86e74]
cmp dword [edi + 0x86e70], ebx
jbe 0x44e1a3
call fcn.004a067d
mov eax, dword [edi + 0x86e64]
test esi, esi
je 0x44e1b1
cmp esi, eax
je 0x44e1b6
call fcn.004a067d
cmp dword [esp + 0x24], ebx
je 0x44e3db
test esi, esi
jne 0x44e3cc
call fcn.004a067d
mov eax, dword [esp + 0x24]
cmp eax, dword [esi + 0x10]
jb 0x44e1db
call fcn.004a067d
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx]
mov edx, dword [esi + 0x10]
push 0
push 0
lea ebx, [edi + 0x1444]
push edx
mov ecx, ebx
call fcn.0040eae0
mov eax, dword [esi + 0x10]
push 1
push eax
mov ecx, ebx
call fcn.0040fac0
mov dword [esi], eax
mov dword [esi + 0x24], eax
mov edx, 1
mov dword [eax + 0xe8], edx
mov ecx, dword [esi]
mov dword [ecx + 0xec], edx
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 4]
mov dword [eax + 0xcc], ecx
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 8]
mov dword [eax + 0xd0], ecx
mov eax, dword [esi]
mov dword [esi + 0x34], 0xffffffff
mov ecx, dword [eax + 0xd0]
mov eax, dword [eax + 0xcc]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], ecx
mov eax, dword [esi]
mov dword [esi + 0x2c], edx
mov edx, dword [esi + 0x54]
mov dword [eax + 0x5c], edx
mov ecx, dword [esi + 0x58]
mov dword [eax + 0x60], ecx
mov edx, dword [esi + 0x5c]
lea ebx, [esi + 0x44]
add eax, 0x4c
mov dword [eax + 0x18], edx
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
mov edx, dword [ebx]
mov dword [eax], edx
mov ecx, dword [ebx + 8]
mov dword [eax + 8], ecx
mov edx, dword [ebx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x38], edx
mov edx, dword [esi + 0x20]
mov dword [esp + 0x3c], edx
mov edx, dword [esi + 0x24]
mov dword [esp + 0x40], edx
mov edx, dword [esi + 0x18]
mov dword [esp + 0x34], edx
mov edx, dword [esi + 0x14]
mov dword [esp + 0x30], edx
mov edx, ecx
mov dword [esp + 0x44], edx
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x48], edx
mov edx, dword [esi + 0x30]
xor eax, eax
mov dword [esp + 0x4c], edx
mov edx, dword [esi + 0x34]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x9c]
push eax
lea ecx, [edi + 0x58dc]
mov byte [esp + 0x4f8], 2
call fcn.00421fa0
mov eax, dword [esp + 0x88]
test eax, eax
je 0x44e36b
push eax
call fcn.004a2159
add esp, 4
mov esi, dword [esi]
mov eax, dword [esi + 0xd0]
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0xcc]
add edx, eax
push edx
mov edx, dword [esi + 0x10]
add edx, ecx
push edx
push eax
push ecx
push ebx
mov byte [esp + 0x504], 0
call dword [sym.imp.user32.dll_SetRect]
push ebx
lea ecx, [edi + 0x5820]
call fcn.0041f760
cmp dword [esp + 0x20], 0
jne 0x44e3d3
call fcn.004a067d
xor eax, eax
mov ecx, dword [esp + 0x24]
cmp ecx, dword [eax + 0x10]
jb 0x44e3be
call fcn.004a067d
add dword [esp + 0x24], 4
mov esi, dword [esp + 0x20]
jmp 0x44e190
mov esi, dword [esi]
jmp 0x44e1cd
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
jmp 0x44e3b0
mov ebx, dword [edi + 0x86e58]
cmp ebx, dword [edi + 0x86e5c]
jbe 0x44e3ee
call fcn.004a067d
mov esi, dword [edi + 0x86e4c]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebx
lea esp, [esp]
mov ebx, dword [edi + 0x86e5c]
cmp dword [edi + 0x86e58], ebx
jbe 0x44e413
call fcn.004a067d
mov eax, dword [edi + 0x86e4c]
test esi, esi
je 0x44e421
cmp esi, eax
je 0x44e426
call fcn.004a067d
cmp dword [esp + 0x24], ebx
je 0x44e6c2
test esi, esi
jne 0x44e6b7
call fcn.004a067d
mov edx, dword [esp + 0x24]
cmp edx, dword [esi + 0x10]
jb 0x44e44b
call fcn.004a067d
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov ecx, dword [esi + 0x10]
push 0
push 0
push ecx
lea ebx, [edi + 0x1444]
mov ecx, ebx
call fcn.0040eae0
mov edx, dword [esi + 0x10]
push 1
push edx
mov ecx, ebx
call fcn.0040fac0
mov ebx, eax
mov eax, dword [esi + 0xc]
push eax
mov ecx, edi
call fcn.0043b960
push eax
push ebx
lea ecx, [edi + 0x5820]
call fcn.00428e80
mov dword [esi], eax
mov dword [esi + 0x24], eax
mov dword [eax + 0xc8], 0x270f
mov ecx, dword [esi]
mov edx, 1
mov dword [ecx + 0xec], edx
mov eax, dword [esi]
mov ecx, dword [esi + 4]
sub ecx, dword [eax + 0x10]
mov eax, dword [esi + 0x24]
mov dword [eax + 0xcc], ecx
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 8]
mov dword [ecx + 0xd0], eax
mov eax, dword [esi]
mov ecx, dword [eax + 0xd0]
mov eax, dword [eax + 0xcc]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], ecx
mov eax, dword [esi]
mov dword [esi + 0x2c], edx
mov dword [esi + 0x34], 0xffffffff
mov ecx, dword [eax + 0xcc]
sub ecx, dword [eax + 0x10]
mov dword [eax + 0x4c], ecx
mov eax, dword [esi]
mov edx, dword [eax + 0xcc]
mov dword [eax + 0x54], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0xd0]
mov dword [eax + 0x50], ecx
mov eax, dword [esi]
mov edx, dword [eax + 0xd0]
add edx, dword [eax + 0xc]
xor ebx, ebx
mov dword [eax + 0x58], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x3c], edx
mov edx, dword [esi + 0x24]
mov dword [esp + 0x40], edx
mov edx, dword [esi + 0x18]
mov dword [esp + 0x34], edx
mov edx, dword [esi + 0x14]
mov dword [esp + 0x30], edx
mov edx, eax
mov dword [esp + 0x44], edx
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x48], edx
mov edx, dword [esi + 0x30]
mov dword [esp + 0x4c], edx
mov edx, dword [esi + 0x34]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x9c]
push edx
lea ecx, [edi + 0x58dc]
mov byte [esp + 0x4f8], 4
call fcn.00421fa0
mov eax, dword [esp + 0x88]
cmp eax, ebx
je 0x44e5fc
push eax
call fcn.004a2159
add esp, 4
mov eax, dword [esi + 0x24]
push eax
lea ecx, [edi + 0x5820]
mov byte [esp + 0x4f4], 0
call fcn.0041f550
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x54]
mov edx, dword [esi + 0x4c]
sub ecx, dword [eax + 0x4c]
sub edx, dword [esi + 0x44]
lea ebx, [esi + 0x44]
cmp edx, ecx
jge 0x44e652
mov ecx, dword [eax + 0x5c]
mov dword [ebx + 0x10], ecx
mov edx, dword [eax + 0x60]
mov dword [ebx + 0x14], edx
mov ecx, dword [eax + 0x64]
mov dword [ebx + 0x18], ecx
mov edx, dword [eax + 0x50]
mov dword [ebx + 4], edx
mov ecx, dword [eax + 0x4c]
mov dword [ebx], ecx
mov edx, dword [eax + 0x54]
mov dword [ebx + 8], edx
mov eax, dword [eax + 0x58]
mov dword [ebx + 0xc], eax
push ebx
lea ecx, [edi + 0x5820]
call fcn.0041f760
mov esi, dword [esi + 0x24]
mov ecx, dword [esi + 0x5c]
add esi, 0x4c
mov dword [ebx + 0x10], ecx
mov edx, dword [esi + 0x14]
mov dword [ebx + 0x14], edx
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov ecx, dword [esi + 4]
mov dword [ebx + 4], ecx
mov edx, dword [esi]
mov dword [ebx], edx
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0xc]
mov dword [ebx + 0xc], ecx
test eax, eax
jne 0x44e6be
call fcn.004a067d
xor eax, eax
mov edx, dword [esp + 0x24]
cmp edx, dword [eax + 0x10]
jb 0x44e6a9
call fcn.004a067d
add dword [esp + 0x24], 4
mov esi, dword [esp + 0x20]
jmp 0x44e400
mov esi, dword [esi]
jmp 0x44e43d
mov eax, dword [eax]
jmp 0x44e69b
lea esi, [edi + 0x1444]
lea ebx, [edi + 0x5820]
push esi
mov ecx, ebx
call fcn.0041f970
mov ecx, dword [edi + 0x5824]
lea eax, [edi + 0x593c]
push eax
mov eax, dword [edi + 0x88050]
push esi
push eax
push ecx
mov ecx, dword [esp + 0x38]
call fcn.004714b0
cmp dword [edi + 0x88058], 0
mov edx, dword [edi + 0x8731c]
mov eax, dword [edi + 0x87320]
mov ecx, dword [edi + 0x87324]
mov dword [edi + 0x884c0], edx
mov dword [edi + 0x884c4], eax
mov dword [edi + 0x884c8], ecx
jne 0x44e78e
push 0
mov ecx, edi
call fcn.0043ff60
cmp dword [edi + 0x86e9c], 1
jne 0x44e78e
cmp dword [edi + 0x881f8], 0
jne 0x44e78e
mov edx, dword [edi + 0x873d4]
mov dword [edx + 0xf8], 0
mov eax, dword [edi + 0x876e0]
mov ecx, dword [edi + 0x8805c]
push eax
mov eax, dword [edi + 0x873d4]
push ecx
push 1
push 0xffffffffffffffff
lea edx, [edi + 0x89bc0]
push edx
push esi
push eax
mov ecx, ebx
call fcn.0042f0c0
cmp eax, 1
jne 0x44e78e
mov ecx, dword [edi + 0x873d4]
add ecx, 0x8c
push ecx
mov ecx, edi
call fcn.0043b7b0
mov edx, dword [edi + 0x87eec]
xor eax, eax
lea ebx, [edi + 0x87eec]
mov dword [edi + 0x876f8], eax
mov dword [edi + 0x870d8], eax
mov eax, dword [edx + 4]
mov ecx, ebx
call eax
mov eax, 1
cmp dword [edi + 0x87fe4], eax
jne 0x44e7f2
cmp dword [edi + 0x87f8c], eax
jne 0x44e7f2
mov edx, dword [edi + 0x87fe0]
lea ecx, [edi + 0x87f90]
push ecx
push edx
mov ecx, esi
call fcn.0040a7a0
cmp eax, 1
jne 0x44e7f2
push 3
mov ecx, ebx
call fcn.004636d0
test eax, eax
je 0x44e7f2
mov ecx, ebx
call fcn.00462b40
xor ebx, ebx
cmp dword [edi + 0x87f38], 1
jne 0x44e8dd
cmp dword [edi + 0x87ff0], ebx
jle 0x44e8dd
lea ecx, [ecx]
mov eax, dword [edi + 0x87fec]
mov esi, dword [eax + ebx*4]
lea eax, [esi + 0x358]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x348]
cmp eax, 1
jne 0x44e83d
cmp dword [esi + 0x34c], eax
je 0x44e86d
xor ecx, ecx
cmp eax, ecx
je 0x44e84b
cmp dword [esi + 0x34c], ecx
jne 0x44e857
mov dword [esi + 0x348], ecx
mov dword [esi + 0x34c], ecx
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
inc ebx
cmp ebx, dword [edi + 0x87ff0]
jl 0x44e810
jmp 0x44e8db
lea edx, [esi + 0xc]
push edx
push ebx
lea ecx, [edi + 0x1444]
mov dword [edi + 0x87f3c], ebx
call fcn.0040a910
test eax, eax
je 0x44e8ce
fild dword [edi + 0x87fb0]
push esi
lea ecx, [edi + 0x87eec]
fstp qword [esi + 0x338]
call fcn.00463950
mov eax, dword [esi]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x30]
push 1
push 0
push 0
push eax
call edx
fld qword [esi + 0x338]
mov eax, dword [esi]
mov ebx, dword [eax]
call fcn.004a0ad0
push eax
mov eax, dword [esi]
push eax
mov eax, dword [ebx + 0x3c]
call eax
mov ecx, esi
call fcn.00463220
add esi, 0x358
push esi
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
xor ebx, ebx
cmp dword [edi + 0x88058], ebx
je 0x44eb20
mov eax, dword [edi + 0x881a0]
cmp eax, 0xffffffff
je 0x44e915
mov edx, dword [edi + 0x8817c]
lea ecx, [edi + 0x880f4]
push ecx
push edx
push eax
lea ecx, [edi + 0x1444]
call fcn.0040f100
mov ecx, edi
call fcn.00443e50
mov eax, dword [edi + 0x881a4]
cmp eax, ebx
je 0x44eaf8
mov dword [eax + 0xec], ebx
mov eax, dword [edi + 0x881a4]
cmp dword [eax + 0x124], 0xffffffff
je 0x44e944
push eax
lea ecx, [edi + 0x1444]
call fcn.0040be80
mov eax, dword [edi + 0x881a4]
cmp eax, ebx
je 0x44eaf8
cmp dword [edi + 0x86e9c], ebx
je 0x44e966
mov cl, byte [edi + 0x87e24]
mov byte [eax + 0x12c], cl
mov esi, dword [edi + 0x881a4]
mov ebx, dword [esi + 0x2c]
add esi, 0x20
cmp ebx, dword [esi + 0x10]
jbe 0x44e97c
call fcn.004a067d
mov edx, dword [esi]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebx
jmp 0x44e990
mov esi, dword [edi + 0x881a4]
mov ebx, dword [esi + 0x30]
add esi, 0x20
cmp dword [esi + 0xc], ebx
jbe 0x44e9a6
call fcn.004a067d
mov esi, dword [esi]
test esi, esi
je 0x44e9b2
cmp esi, dword [esp + 0x18]
je 0x44e9b7
call fcn.004a067d
cmp ebx, dword [esp + 0x1c]
je 0x44ead3
cmp dword [edi + 0x8805c], 0
je 0x44e9fe
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x44ea98
call fcn.004a067d
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x10]
jb 0x44e9eb
call fcn.004a067d
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
cmp dword [eax + 0xfc], 1
jne 0x44eaa6
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x44ea9f
call fcn.004a067d
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x10]
jb 0x44ea1f
call fcn.004a067d
mov ecx, dword [edi + 0x594c]
mov edx, dword [esp + 0x1c]
sub ecx, dword [edi + 0x5948]
mov eax, dword [edx]
mov esi, dword [eax + 4]
sar ecx, 2
cmp esi, ecx
jb 0x44ea40
call fcn.004a067d
mov edx, dword [edi + 0x5948]
mov eax, dword [edx + esi*4]
or edx, 0xffffffff
xor ecx, ecx
mov dword [eax + 0x9c], edx
mov dword [eax + 0xa0], edx
mov dword [eax + 0xb0], ecx
mov dword [eax + 0xa4], edx
mov dword [eax + 0xa8], edx
mov dword [eax + 0xb4], ecx
mov dword [eax + 0xd4], ecx
mov dword [eax + 0x24c], edx
mov dword [eax + 0x250], ecx
mov dword [eax + 0x254], ecx
mov dword [eax + 0x258], ecx
mov dword [eax + 0x25c], ecx
jmp 0x44eaa8
mov eax, dword [eax]
jmp 0x44e9dd
mov eax, dword [eax]
jmp 0x44ea11
xor ecx, ecx
mov eax, dword [esp + 0x18]
cmp eax, ecx
jne 0x44eacf
call fcn.004a067d
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x10]
jb 0x44eac5
call fcn.004a067d
add dword [esp + 0x1c], 4
jmp 0x44e990
mov eax, dword [eax]
jmp 0x44eab7
mov edx, dword [edi + 0x58c0]
mov eax, dword [edi + 0x58bc]
push edx
push eax
push 0
push 0
mov ecx, edi
call fcn.0043b760
mov dword [edi + 0x143c], 1
xor ebx, ebx
mov eax, dword [esp + 0x28]
mov ecx, 1
mov dword [edi + 0x882b4], ebx
cmp dword [eax + 0x204], ecx
jne 0x44eb15
mov dword [eax + 0x258], ecx
mov dword [eax + 0x204], ebx
jmp 0x44ec28
mov ecx, dword [edi + 0x58c0]
mov edx, dword [edi + 0x58bc]
push ecx
push edx
push ebx
push ebx
mov ecx, edi
call fcn.0043b760
mov eax, dword [edi + 0x86f50]
mov ecx, dword [edi + 0x88050]
mov edx, dword [edi + 0x5824]
mov esi, dword [esp + 0x28]
push eax
mov eax, dword [edi + 0x87780]
push ecx
push edx
push eax
mov ecx, esi
mov dword [edi + 0x870b0], 1
call fcn.0046ada0
mov ecx, edi
call fcn.0043ba10
cmp dword [edi + 0x88054], ebx
je 0x44eb8e
cmp dword [edi + 0x870a8], 3
mov ecx, edi
jne 0x44eb89
call fcn.004401d0
jmp 0x44eb8e
call fcn.00440580
cmp dword [edi + 0x89bc0], ebx
je 0x44ebe2
cmp dword [edi + 0x5954], ebx
jne 0x44ebe2
cmp dword [edi + 0x6398], ebx
jne 0x44ebe2
cmp dword [edi + 0x88054], ebx
jne 0x44ebe2
mov ecx, dword [edi + 0x88050]
mov edx, dword [edi + 0x88080]
push ecx
push esi
push edx
lea eax, [edi + 0x880d0]
push eax
lea eax, [edi + 0x1444]
push eax
lea ecx, [edi + 0x5820]
call fcn.00425a90
mov dword [edi + 0x89bc0], eax
mov dword [edi + 0x89bc4], eax
cmp dword [edi + 0x876f0], 1
mov dword [edi + 0x882b4], ebx
mov dword [edi + 0x884b4], ebx
jne 0x44ec0f
mov ecx, dword [edi + 0x876ec]
mov dword [edi + 0x876e0], ecx
mov dword [edi + 0x876f0], ebx
mov dword [edi + 0x876e8], ebx
mov edx, dword [edi + 0x873d0]
mov ecx, edi
mov dword [edi + 0x884bc], ebx
mov dword [edi + 0x873cc], edx
call fcn.004345d0
mov ecx, dword [esp + 0x4e8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4d0]
xor ecx, esp
call fcn.004a0abf
mov esp, ebp
pop ebp
ret