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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x1c80
call fcn.004e3cd0
mov al, byte [0x538038]
mov ebx, ecx
mov ecx, 8
mov edx, 4
call fcn.00439850
test eax, eax
je 0x44f252
xor edi, edi
mov esi, eax
inc edi
mov dword [eax + 4], edi
mov dword [eax], edi
call fcn.004b4293
xor ecx, ecx
mov dword [esp + 0xe0], ecx
mov byte [esp + 0xe4], cl
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], 0x400
mov byte [esp + 0x102], cl
mov dword [esp + 0x90], ecx
mov dword [esp + 0xf4], 0x200
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], 0x52cb48
mov dword [esp + 0x98], ecx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xb0], 0x3b9aca00
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xf8], 0x3d
mov dword [esp + 0xfc], pe_nt_image_headers32
mov word [esp + 0x103], 0
mov word [esp + 0x100], 0x101
push ecx
push ecx
push ecx
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
test eax, eax
je 0x44cac0
mov esi, eax
mov al, byte [0x538038]
mov ecx, 0xc
mov edx, 4
call fcn.00439850
test eax, eax
je 0x44f243
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 8], esi
mov dword [esp], eax
lock inc dword [eax]
jle 0x44f20a
mov al, byte [0x538038]
mov ecx, 0x40
mov edx, 4
mov esi, 4
call fcn.00439850
test eax, eax
je 0x44f220
mov edx, dword [esp]
xor ecx, ecx
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ecx
mov byte [eax + 0x14], cl
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], esi
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
mov byte [eax + 0x28], cl
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], esi
mov dword [eax + 0x34], ecx
mov dword [eax + 0x38], ecx
mov byte [eax + 0x3c], cl
lock inc dword [edx]
jle 0x44f20a
mov dword [esp + 0xc], eax
lock inc dword [eax]
jle 0x44f20a
mov al, byte [0x538038]
mov ecx, 0x4000
mov edx, 4
call fcn.00439850
test eax, eax
je 0x44f2a3
mov esi, eax
mov ecx, 0x3ff
xor edx, edx
mov dword [eax + 4], edx
mov dword [eax], edx
mov dword [eax + 0xc], edx
mov dword [eax + 8], edx
add eax, 0x10
dec ecx
jne 0x44c655
xor ecx, ecx
mov edx, 8
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
mov ecx, 0x4000
mov al, byte [0x538038]
call fcn.00439850
test eax, eax
mov dword [esp + 4], eax
je 0x44f2aa
mov dword [esp + 0x10], esi
mov ecx, 0x40
mov edx, 4
mov al, byte [0x538038]
call fcn.00439850
test eax, eax
je 0x44f220
mov dword [esp + 0x12c], eax
mov al, byte [esp + 0x3ba]
xor esi, esi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x101c], esi
mov dword [esp + 0x1021], esi
mov dword [esp + 0x101d], esi
mov dword [esp + 0x1018], esi
movsd xmm0, qword [esp + 0x101d]
mov byte [esp + 0x2e], al
movzx eax, word [esp + 0x3b8]
movsd qword [esp + 0x135], xmm0
movq xmm0, qword [esp + 0x1018]
mov word [esp + 0x2c], ax
movzx eax, word [esp + 0x1b8]
movq qword [esp + 0x130], xmm0
mov word [esp + 0x20], ax
mov al, byte [esp + 0x1ba]
mov byte [esp + 0x22], al
movzx eax, word [esp + 0x3c]
mov word [esp + 0x7c], ax
mov al, byte [esp + 0x3e]
mov byte [esp + 0x7e], al
mov al, byte [esp + 0x2e]
mov byte [esp + 0x72], al
movzx eax, word [esp + 0x2c]
mov word [esp + 0x70], ax
mov al, byte [esp + 0x22]
mov byte [esp + 0x7a], al
movzx eax, word [esp + 0x20]
mov word [esp + 0x78], ax
mov al, byte [esp + 0x7e]
mov byte [esp + 0x76], al
movzx eax, word [esp + 0x7c]
mov word [esp + 0x74], ax
call fcn.0049b460
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x128], eax
mov ecx, 0x20
mov edx, 8
mov al, byte [0x538038]
call fcn.00439850
test eax, eax
mov dword [esp + 8], eax
je 0x44f2b9
xor edi, edi
mov eax, 0xfffffe00
mov dword [esp + eax + 0x5b8], esi
mov dword [esp + eax + 0x5bc], esi
add eax, 8
jne 0x44c7b9
mov eax, 0x200
push eax
lea eax, [esp + 0x3bc]
push eax
lea eax, [esp + 0x1c0]
push eax
call fcn.004e4a90
add esp, 0xc
imul eax, edi, 0x210
lea ebx, [esp + eax + 0x1018]
mov eax, 0x200
push eax
lea eax, [esp + 0x1bc]
push eax
push ebx
call fcn.004e4a90
add esp, 0xc
mov dword [ebx + 0x204], esi
mov dword [ebx + 0x200], esi
mov dword [ebx + 0x208], edi
inc edi
cmp edi, 6
jne 0x44c7b4
lea eax, [esp + 0x1018]
push 0xc60
push eax
lea edi, [esp + 0x3c0]
push edi
call fcn.004e4a90
add esp, 0xc
mov al, byte [0x538038]
mov ecx, 0xc60
mov edx, 8
call fcn.00439850
test eax, eax
je 0x44f2c0
mov esi, eax
push 0xc60
push edi
push eax
call fcn.004e4a90
add esp, 0xc
mov edx, dword [esp + 8]
xor eax, eax
mov dword [esp + 0x101f], eax
mov dword [esp + 0x101b], eax
mov dword [esp + 0x1027], eax
mov dword [esp + 0x1023], eax
mov dword [edx], eax
mov byte [edx + 4], 0
movsd xmm0, qword [esp + 0x1018]
movsd xmm1, qword [esp + 0x1020]
movsd qword [edx + 5], xmm0
movsd qword [edx + 0xd], xmm1
mov ecx, dword [esp + 0x1027]
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], esi
mov dword [esp + 0x150], 0x400
mov dword [esp + 0x158], eax
mov eax, dword [esp + 4]
mov edx, 4
movzx ecx, word [esp + 0x70]
movsd xmm0, qword [esp + 0x130]
movsd xmm1, qword [esp + 0x135]
mov edi, dword [esp + 0xf4]
mov dword [esp + 0x154], eax
mov word [esp + 0x60], cx
mov cl, byte [esp + 0x72]
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x45], xmm1
movzx eax, word [esp + 0x60]
movq xmm0, qword [esp + 0x40]
movsd xmm1, qword [esp + 0x45]
mov byte [esp + 0x62], cl
movzx ecx, word [esp + 0x78]
mov word [esp + 0x64], ax
mov al, byte [esp + 0x62]
movq qword [esp + 0x1a0], xmm0
movsd qword [esp + 0x1a5], xmm1
mov word [esp + 0x5c], cx
mov cl, byte [esp + 0x7a]
mov byte [esp + 0x66], al
movzx eax, word [esp + 0x5c]
mov byte [esp + 0x5e], cl
movzx ecx, word [esp + 0x74]
mov word [esp + 0x6c], ax
mov al, byte [esp + 0x5e]
mov word [esp + 0x58], cx
mov cl, byte [esp + 0x76]
mov byte [esp + 0x6e], al
movzx eax, word [esp + 0x58]
mov byte [esp + 0x5a], cl
mov ecx, dword [esp + 0x83]
mov word [esp + 0x68], ax
mov al, byte [esp + 0x5a]
mov dword [esp + 0x8b], ecx
mov ecx, 0x20
mov byte [esp + 0x6a], al
mov eax, dword [esp + 0x80]
mov dword [esp + 0x88], eax
mov al, byte [0x538038]
call fcn.00439850
test eax, eax
mov esi, 1
je 0x44f2cf
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 0x18], 0
mov dword [esp + 0x18], edi
mov byte [eax + 0x1c], 0
mov ebx, eax
lock inc dword [eax]
jle 0x44f20a
mov al, byte [0x538038]
mov ecx, 0xc
mov edx, 4
call fcn.00439850
test eax, eax
je 0x44f243
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], ebx
mov edi, eax
mov dword [esp + 0x19c], ebx
mov eax, dword [esp + 0xa8]
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x14], eax
call fcn.004b3470
test eax, eax
je 0x44f261
mov ecx, dword [eax + 0xc]
mov edx, dword [eax]
mov esi, dword [eax + 8]
mov dword [esp + 0x24], ecx
mov ecx, edx
add ecx, 1
mov dword [eax], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x38], ecx
adc ecx, 0
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0xb8]
lock inc dword [ecx]
jle 0x44f20a
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x34], esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0xc0]
test eax, eax
je 0x44cb1d
lock inc dword [eax]
jle 0x44f20a
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x10c], ecx
jmp 0x44cb1d
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [esp + 0x1018]
xor ecx, ecx
mov edx, esi
mov dword [esi], 0
mov dword [esi + 4], eax
call fcn.0044f462
mov ecx, dword [ebx + 0x13c]
mov edx, eax
call fcn.0046cae9
test eax, eax
mov dword [esi], eax
mov dword [esi + 4], edx
je 0x44ce3b
cmp eax, 1
jne 0x44ce27
test edx, edx
mov dword [esp + 0x3b8], edx
je 0x44ce3b
lea eax, [esp + 0x3b8]
jmp 0x44ce32
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x118], edx
mov dword [esp + 0x114], eax
test ecx, ecx
mov dword [esp + 0x110], ecx
je 0x44cb56
lock inc dword [ecx]
jle 0x44f20a
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x108], eax
jmp 0x44cb56
mov al, byte [0x538038]
mov ecx, 0xa8
mov edx, 8
call fcn.00439850
test eax, eax
je 0x44f2de
mov esi, dword [esp + 0x1c]
xor edx, edx
cmp ebx, 0x3b9aca00
mov ecx, 0xa
movsd xmm0, qword [0x52c370]
cmove ebx, edx
cmove esi, ecx
mov ecx, 1
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x11c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x10], esi
mov esi, dword [esp + 0x28]
cmove ecx, edx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ebx
mov ebx, dword [esp + 0x30]
mov dword [eax + 0x20], esi
mov esi, dword [esp + 0x38]
mov dword [eax + 0x24], ebx
mov dword [eax + 0x28], edx
mov byte [eax + 0x2c], dl
mov dword [eax + 0x30], edx
mov dword [eax + 0x34], 4
mov dword [eax + 0x38], edx
mov dword [eax + 0x3c], edx
movsd qword [eax + 0x40], xmm0
movq xmm0, qword [0x52c378]
mov ebx, dword [esp + 0x118]
movq qword [eax + 0x48], xmm0
mov dword [eax + 0x54], esi
mov esi, dword [esp + 0x24]
mov dword [eax + 0x50], ebx
mov ebx, dword [esp + 0x34]
mov dword [eax + 0x5c], esi
mov esi, dword [esp + 0x114]
mov dword [eax + 0x58], ebx
mov dword [eax + 0x60], edx
mov dword [eax + 0x64], edi
mov dword [eax + 0x68], edx
mov dword [eax + 0x74], edx
mov byte [eax + 0x78], dl
mov edi, dword [esp + 0x10c]
mov dword [eax + 0x80], esi
mov esi, dword [esp + 0x110]
mov dword [eax + 0x84], edi
mov edi, dword [esp + 0x108]
mov dword [eax + 0x88], esi
mov esi, dword [esp + 0x18]
mov dword [eax + 0x8c], edi
mov dword [eax + 0x90], edx
mov dword [esp + 0x18], eax
mov dword [eax + 0x94], esi
mov dword [eax + 0x98], edx
mov dword [eax + 0x9c], edx
mov dword [eax + 0xa0], edx
lock inc dword [eax]
jle 0x44f20a
lea esi, [esp + 0xe0]
mov ecx, esi
call fcn.004b50b9
mov ecx, esi
mov edi, eax
mov ebx, edx
call fcn.004b50b9
mov ecx, dword [esp + 0xd0]
test ecx, ecx
je 0x44ccc0
lock inc dword [ecx]
jle 0x44f20a
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x194], esi
jmp 0x44ccc0
mov esi, dword [esp + 0xd8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], ecx
test esi, esi
mov dword [esp + 0x28], esi
je 0x44ccf4
lock inc dword [esi]
jle 0x44f20a
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x190], eax
jmp 0x44ccf4
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x50], edi
mov ecx, 0x40
mov edx, 4
mov esi, 4
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x10c], eax
movzx eax, word [esp + 0x166]
mov word [esp + 0x80], ax
mov al, byte [esp + 0x103]
mov byte [esp + 0x118], al
mov al, byte [esp + 0x168]
mov byte [esp + 0x82], al
mov al, byte [esp + 0x104]
mov byte [esp + 0x114], al
mov al, byte [0x538038]
call fcn.00439850
test eax, eax
je 0x44f220
lea ebx, [esp + 0x1018]
xor edi, edi
xor edx, edx
mov dword [ebx], 4
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0
cmp edx, dword [esp + 0x1018]
jne 0x44cdc5
mov ecx, ebx
call fcn.004b9468
mov eax, dword [esp + 0x101c]
mov edx, dword [esp + 0x1020]
shl edx, 4
mov dword [eax + edx], edi
mov byte [eax + edx + 4], 0
mov dword [eax + edx + 8], edi
mov dword [eax + edx + 0xc], edi
mov edx, dword [esp + 0x1020]
inc edx
dec esi
mov dword [esp + 0x1020], edx
jne 0x44cda7
mov eax, dword [esp + 0x101c]
cmp dword [esp + 0x1018], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x108], edx
jbe 0x44ce74
test edx, edx
je 0x44ce60
mov esi, edx
shl esi, 4
push esi
push eax
push 0
push dword [0x537fc8]
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
test eax, eax
jne 0x44ce74
jmp 0x44f3ce
test edx, edx
je 0x44ce3b
lea eax, [esp + 0x101c]
push eax
call fcn.00442dd5
add esp, 4
lea ecx, [esp + 0x90]
call fcn.0044f4c2
mov ecx, ebx
call fcn.00442a23
add ebx, 0x138
mov ecx, ebx
call fcn.00442af3
jmp 0x44f081
push eax
push 0
push dword [0x537fc8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 4
mov dword [esp + 0x198], eax
mov esi, dword [0x5370ac]
mov edi, dword [0x5370a8]
mov ebx, edi
mov ecx, esi
mov eax, edi
mov edx, esi
add ebx, 1
adc ecx, 0
lock cmpxchg8b qword [0x5370a8]
mov edi, eax
mov esi, edx
jne 0x44ce87
mov eax, edi
or eax, esi
je 0x44ce7b
mov ecx, dword [esp + 0x101b]
mov eax, dword [esp + 0x1018]
mov edx, 8
mov dword [esp + 0x3bb], ecx
mov dword [esp + 0x3b8], eax
movzx eax, word [esp + 0x1b8]
mov ecx, 0xe8
mov word [esp + 0x40], ax
mov al, byte [esp + 0x1ba]
mov byte [esp + 0x42], al
movzx eax, word [esp + 0x130]
mov word [esp + 0x150], ax
mov al, byte [esp + 0x132]
mov byte [esp + 0x152], al
mov al, byte [0x538038]
call fcn.00439850
test eax, eax
je 0x44f2ed
mov ecx, dword [esp + 0x198]
xor ebx, ebx
mov edx, eax
inc ebx
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x108]
mov dword [eax + 0xc], ecx
xor eax, eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], 3
mov dword [edx + 0x18], edi
mov dword [edx + 0x1c], esi
mov byte [edx + 0x20], al
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x3b8]
mov esi, dword [esp + 0x3bb]
mov dword [edx + 0x21], ecx
mov dword [edx + 0x24], esi
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], eax
mov byte [edx + 0x30], al
movzx ecx, word [esp + 0x40]
mov word [edx + 0x31], cx
mov cl, byte [esp + 0x42]
mov byte [edx + 0x33], cl
mov dword [edx + 0x34], eax
mov dword [edx + 0x38], eax
mov byte [edx + 0x3c], al
mov cl, byte [esp + 0x152]
mov byte [edx + 0x3f], cl
movzx ecx, word [esp + 0x150]
mov word [edx + 0x3d], cx
mov ecx, dword [esp + 0x1c]
mov dword [edx + 0x40], ecx
mov ecx, dword [esp + 0x110]
mov dword [edx + 0x44], edi
mov dword [edx + 0x48], ecx
mov ecx, dword [esp + 0x10c]
mov dword [edx + 0x4c], ecx
mov ecx, dword [esp + 0x34]
mov dword [edx + 0x50], ecx
mov ecx, dword [esp + 0x194]
mov dword [edx + 0x54], ecx
mov ecx, dword [esp + 0x28]
mov dword [edx + 0x58], ecx
mov ecx, dword [esp + 0x190]
mov dword [edx + 0x5c], ecx
mov dword [edx + 0x60], eax
mov byte [edx + 0x64], al
mov cl, byte [esp + 0x82]
mov byte [edx + 0x67], cl
movzx ecx, word [esp + 0x80]
mov word [edx + 0x65], cx
mov ecx, dword [esp + 0x50]
mov dword [edx + 0x68], ecx
mov ecx, dword [esp + 0x11c]
mov dword [edx + 0x6c], ecx
mov cl, byte [esp + 0x118]
mov byte [edx + 0x70], cl
mov cl, byte [esp + 0x114]
mov byte [edx + 0x71], cl
mov ecx, dword [esp + 0xc]
mov byte [edx + 0x74], al
mov dword [edx + 0x78], ecx
mov ecx, dword [esp]
mov dword [esp], edx
mov dword [edx + 0x7c], ecx
mov dword [edx + 0x84], eax
mov dword [edx + 0x80], eax
mov dword [edx + 0x89], eax
mov dword [edx + 0x85], eax
movzx ecx, word [esp + 0x6c]
mov word [edx + 0x8d], cx
mov cl, byte [esp + 0x6e]
mov byte [edx + 0x8f], cl
mov ecx, dword [esp + 0x12c]
mov dword [edx + 0x90], 0x10
mov dword [edx + 0x94], ecx
movsd xmm0, qword [esp + 0x1a0]
movsd xmm1, qword [esp + 0x1a5]
movsd qword [edx + 0x9d], xmm1
movsd qword [edx + 0x98], xmm0
movzx ecx, word [esp + 0x68]
mov word [edx + 0xa5], cx
mov cl, byte [esp + 0x6a]
mov byte [edx + 0xa7], cl
mov ecx, dword [esp + 8]
mov dword [edx + 0xa8], ecx
mov dword [edx + 0xac], ebx
mov dword [edx + 0xb0], eax
mov dword [edx + 0xb4], eax
mov byte [edx + 0xb8], al
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x8b]
mov dword [edx + 0xb9], ecx
mov ecx, dword [esp + 0x128]
mov dword [edx + 0xbc], esi
mov dword [edx + 0xc0], ecx
mov ecx, dword [esp + 0x124]
mov dword [edx + 0xc4], ecx
mov ecx, dword [esp + 0x120]
mov dword [edx + 0xc8], ecx
mov dword [edx + 0xd0], eax
mov byte [edx + 0xd4], al
mov ecx, pe_nt_image_headers32
mov al, byte [esp + 0x16b]
mov byte [edx + 0xd7], al
movzx eax, word [esp + 0x169]
mov word [edx + 0xd5], ax
mov eax, dword [esp + 0x24]
mov dword [edx + 0xd8], eax
mov eax, dword [esp + 0x38]
mov dword [edx + 0xdc], eax
mov eax, dword [esp + 0x18]
mov dword [edx + 0xe0], eax
mov edx, 4
mov al, byte [0x538038]
call fcn.00439850
test eax, eax
je 0x44f2fc
mov esi, eax
mov al, byte [0x538038]
mov ecx, 0x3c
mov edx, 4
call fcn.00439850
test eax, eax
je 0x44f30b
cmp dword [esp + 0x1c], 0
mov ecx, 0x1f
cmove edi, ecx
xor ebx, ebx
mov ecx, 0x400
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 4]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x14], 0x400
mov dword [eax + 0x18], ecx
mov byte [eax + 0x1c], bl
movzx ecx, word [esp + 0x64]
mov word [eax + 0x1d], cx
mov cl, byte [esp + 0x66]
mov byte [eax + 0x1f], cl
mov ecx, dword [esp + 0x19c]
mov dword [eax + 0x20], 0x40
mov dword [eax + 0x24], esi
mov dword [eax + 0x28], ebx
mov dword [eax + 0x2c], ebx
mov dword [eax + 0x30], ebx
mov dword [eax + 0x34], edi
mov byte [eax + 0x38], bl
mov dl, byte [esp + 0x101a]
mov dword [esp + 0x174], ecx
mov dword [esp + 0x178], eax
movzx eax, word [esp + 0x1018]
mov ecx, dword [esp]
mov dword [esp + 0x17c], ebx
mov byte [esp + 0x180], bl
mov byte [esp + 0x183], dl
mov byte [esp + 0x164], dl
mov word [esp + 0x181], ax
mov dword [esp + 0x184], ebx
mov dword [esp + 0x188], ebx
mov dword [esp + 0x18c], ebx
mov dword [esp + 0x16c], ecx
mov ecx, dword [esp + 0x18]
mov word [esp + 0x162], ax
mov dword [esp + 0x170], ecx
lea ecx, [esp + 0x90]
call fcn.0044f4c2
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x16c]
mov eax, dword [esi + 0x138]
mov edi, dword [esi + 0x13c]
mov dword [esp], eax
call fcn.004b8559
mov dword [esp + 0x80], eax
mov eax, 0x138
mov dword [esp + 0x84], edx
push eax
push esi
lea eax, [esp + 0x1020]
push eax
call fcn.004e4a90
add esp, 0xc
mov eax, dword [esp]
movq xmm0, qword [esp + 0x1a0]
movsd xmm1, qword [esp + 0x1a8]
xor ecx, ecx
mov dword [esp + 0x1150], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x1154], edi
movq qword [esp + 0x1158], xmm0
movsd qword [esp + 0x1160], xmm1
mov dword [esp + 0x1168], eax
movzx eax, word [esp + 0x2c]
mov byte [esp + 0x116c], bl
mov word [esp + 0x116d], ax
mov al, byte [esp + 0x2e]
mov byte [esp + 0x116f], al
call fcn.004b8f96
test eax, eax
je 0x44f39d
cmp byte [eax + 0x36], 2
mov esi, eax
jne 0x44f31a
mov byte [esi + 0x36], 0
mov ecx, 0xd0
add ecx, dword [esp + 0x16c]
call fcn.004b50b9
cmp dword [esi + 0x28], 0
mov ebx, eax
je 0x44d35e
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x30]
jmp 0x44d36d
mov dword [esp + 4], edx
call fcn.004b4293
mov edi, edx
mov edx, dword [esp + 4]
mov dword [esp], eax
mov dword [esi + 0x28], 1
mov dword [esi + 0x2c], ebx
lea eax, [esp + 0x178]
mov dword [esi + 0x30], edx
mov ecx, 0x138
mov edx, dword [eax - 0xc]
add dword [esp + 0x14], ecx
mov ecx, esi
call fcn.004b7482
mov ecx, dword [esp]
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], edx
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], edi
xor ecx, ecx
lea edx, [esp + 0x3c0]
xchg dword [esp + 0x178], ecx
test ecx, ecx
jne 0x44d9cf
xor esi, esi
lea ecx, [esp + 0x17c]
mov dword [esp + 0x130], esi
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x3b8], ecx
shr eax, 2
mov dword [esp + 0x3bc], eax
mov al, byte [esp + 0x3e]
mov dword [esp + 0x3c0], esi
mov dword [esp + 0x3c4], esi
mov dword [esp + 0x3c8], esi
mov dword [esp + 0x3d0], esi
mov byte [esp + 0x3d4], 0
mov byte [edx + 0x17], al
movzx eax, word [esp + 0x3c]
mov word [edx + 0x15], ax
call fcn.004b7294
test eax, eax
je 0x44f1c4
lea ecx, [esp + 0x90]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
mov dword [esp + 0x88], ecx
xor ecx, ecx
call fcn.004b8f96
test eax, eax
je 0x44d474
mov cl, byte [eax + 0x34]
mov dl, byte [eax + 0x35]
mov word [eax + 0x34], 0x8001
mov byte [esp + 0xc], cl
mov byte [esp + 0x18], dl
jmp 0x44d479
mov byte [esp + 0xc], 2
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x3b8]
mov dword [esp + 8], eax
movzx eax, byte [esp + 0x3d4]
test eax, eax
jne 0x44d56e
mov ecx, dword [esi + 0x10]
and ecx, 0xfffffffc
lea eax, [ecx + 2]
lock cmpxchg dword [esi + 0x10], ecx
jne 0x44d4b5
mov byte [esp + 0x3d4], 2
jmp 0x44d48b
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
push dword [ecx + 4]
call dword [eax]
add esp, 4
mov edi, edx
lea ecx, [esp + 0x1b8]
mov edx, esi
mov dword [esp], eax
call fcn.004132c0
mov al, byte [esp + 0x1c0]
mov ecx, dword [esp + 0x1bc]
mov byte [esp + 4], al
mov edx, dword [esi + 0x10]
mov eax, edx
shr eax, 2
cmp eax, dword [esp + 0x3bc]
jne 0x44d54c
mov eax, edx
and eax, 3
je 0x44d526
cmp eax, 2
jne 0x44d67b
and edx, 0xfffffffc
lea eax, [edx + 2]
lock cmpxchg dword [esi + 0x10], edx
je 0x44d54c
mov edx, eax
and eax, 3
mov dword [esp + 0x40], eax
je 0x44d4f9
jmp 0x44f10d
and edx, 0xfffffffc
lea ebx, [edx + 1]
mov eax, edx
lock cmpxchg dword [esi + 0x10], ebx
je 0x44d684
mov edx, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x40], eax
je 0x44d4f9
jmp 0x44f128
movzx edx, byte [esp + 4]
mov byte [esp + 0x3d4], 2
call fcn.00422910
push edi
mov eax, dword [esp + 4]
call dword [eax + 0xc]
add esp, 4
jmp 0x44d48b
cmp eax, 1
jne 0x44d7b7
lea edi, [esp + 0x3d0]
mov edx, 2
mov ecx, edi
call fcn.004b87b8
cmp eax, 2
jne 0x44d744
lea ecx, [esp + 0x1b8]
mov edx, esi
call fcn.004132c0
mov al, byte [esp + 0x1c0]
mov ebx, dword [esp + 0x1bc]
mov ecx, edi
xor edx, edx
mov byte [esp], al
call fcn.004b87b8
cmp eax, 2
jne 0x44d775
mov eax, dword [esi + 0x10]
mov edi, dword [esp + 0x3c8]
shr eax, 2
cmp eax, dword [esp + 0x3bc]
je 0x44d7be
mov eax, dword [esp + 0x3c0]
mov ecx, dword [esp + 0x3cc]
lea edx, [esp + 0x3c0]
mov dword [esp + 0x3c8], 0
test eax, eax
mov dword [esp + 4], ecx
je 0x44d636
mov ecx, dword [esp + 0x3c4]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x3c4]
test eax, eax
je 0x44d647
mov ecx, dword [esp + 0x3c0]
mov dword [eax], ecx
xor eax, eax
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x3c0], eax
jmp 0x44d64c
cmp dword [ebx + 8], edx
jne 0x44d64c
mov eax, dword [esp + 0x3c4]
mov dword [ebx + 8], eax
jmp 0x44d617
cmp dword [ebx + 0xc], edx
je 0x44d676
movzx edx, byte [esp]
mov ecx, ebx
mov byte [esp + 0x3d4], 2
call fcn.00422910
test edi, edi
je 0x44d48b
push dword [esp + 4]
call dword [edi + 0xc]
add esp, 4
jmp 0x44d48b
lea eax, [ebx + 0xc]
jmp 0x44d61b
cmp eax, 1
jne 0x44f0f9
mov eax, dword [esp]
lea edx, [esp + 0x3c0]
mov esi, dword [esp + 0x3c8]
mov ebx, dword [esp + 0x3cc]
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x3cc], edi
mov eax, dword [ecx + 8]
cmp eax, edx
je 0x44f14e
test eax, eax
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x3c0], 0
je 0x44d6d1
mov dword [eax], edx
mov dword [ecx + 8], edx
cmp dword [ecx + 0xc], 0
jne 0x44d6dd
mov dword [ecx + 0xc], edx
movzx edx, byte [esp + 4]
mov byte [esp + 0x3d4], 1
call fcn.00422910
test esi, esi
je 0x44d6fa
push ebx
call dword [esi + 0xc]
add esp, 4
lea ecx, [esp + 0x1018]
lea edx, [esp + 0x88]
call fcn.00471868
mov ebx, eax
inc bl
cmp byte [esp + 0xc], 2
je 0x44d731
xor ecx, ecx
call fcn.004b8f96
test eax, eax
je 0x44d731
mov cl, byte [esp + 0xc]
mov dl, byte [esp + 0x18]
mov byte [eax + 0x34], cl
mov byte [eax + 0x35], dl
cmp bl, 2
jne 0x44d842
call fcn.004b736e
jmp 0x44d453
mov eax, dword [esp + 0x3c8]
mov ecx, dword [esp + 0x3cc]
mov dword [esp + 0x3c8], 0
test eax, eax
je 0x44d768
push ecx
call dword [eax + 0xc]
add esp, 4
mov dword [esp + 0x3d0], 0
jmp 0x44d7af
mov esi, dword [esp + 0x3c8]
mov edi, dword [esp + 0x3cc]
mov dword [esp + 0x3c8], 0
mov dword [esp + 0x3d0], 0
mov ecx, ebx
movzx edx, byte [esp]
call fcn.00422910
test esi, esi
je 0x44d7af
push edi
call dword [esi + 0xc]
add esp, 4
mov byte [esp + 0x3d4], 2
xor ebx, ebx
jmp 0x44d711
test edi, edi
je 0x44d7da
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x3cc]
mov eax, dword [edx]
mov edx, dword [edx + 4]
cmp ecx, edx
je 0x44d7e5
mov ecx, edx
jmp 0x44d803
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
jmp 0x44d803
mov edx, dword [edi]
cmp edx, dword [eax]
jne 0x44d803
mov edx, dword [edi + 4]
cmp edx, dword [eax + 4]
jne 0x44d803
mov edx, dword [edi + 8]
cmp edx, dword [eax + 8]
jne 0x44d803
mov edx, dword [edi + 0xc]
cmp edx, dword [eax + 0xc]
je 0x44d832
push ecx
call dword [eax]
add esp, 4
mov edi, dword [esp + 0x3cc]
mov esi, dword [esp + 0x3c8]
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x3cc], edx
movzx edx, byte [esp]
mov ecx, ebx
mov ebx, edi
jmp 0x44d6ea
movzx edx, byte [esp]
mov ecx, ebx
call fcn.00422910
jmp 0x44d6fa
mov eax, dword [esp + 0x90]
push dword [esp + 0x94]
call dword [eax + 0xc]
add esp, 4
cmp byte [esp + 0x3d4], 1
jne 0x44d985
mov esi, dword [esp + 0x3b8]
lea ecx, [esp + 0x1b8]
mov edx, esi
call fcn.004132c0
mov al, byte [esp + 0x1c0]
mov edi, dword [esp + 0x1bc]
lea ecx, [esp + 0x3d0]
xor edx, edx
mov byte [esp + 4], al
mov eax, dword [esi + 0x10]
mov dword [esp + 8], eax
call fcn.004b87b8
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x3c0]
lea ecx, [edi + 8]
mov dword [esp], edi
test edx, edx
je 0x44d8e5
mov edi, dword [esp + 0x3c4]
mov dword [edx + 4], edi
mov edx, dword [esp + 0x3c4]
test edx, edx
je 0x44d8fb
mov edi, dword [esp + 0x3c0]
mov dword [edx], edi
xor edx, edx
mov dword [esp + 0x3c4], edx
mov dword [esp + 0x3c0], edx
jmp 0x44d90e
lea edx, [esp + 0x3c0]
cmp dword [ecx], edx
jne 0x44d90e
mov edx, dword [esp + 0x3c4]
mov dword [ecx], edx
jmp 0x44d8c6
mov edi, dword [esp]
lea edx, [esp + 0x3c0]
cmp dword [edi + 0xc], edx
je 0x44d9c4
mov edx, dword [esp]
mov edx, dword [edx + 8]
test edx, edx
jne 0x44d925
mov edi, dword [esp]
cmp dword [edi + 0xc], 0
jne 0x44f20c
add esi, 0x10
test edx, edx
jne 0x44d943
mov edi, dword [esp + 8]
mov edx, edi
and edx, 3
cmp edx, 1
jne 0x44d947
and edi, 0xfffffffc
mov edx, edi
xchg dword [esi], edx
jmp 0x44d947
mov edi, dword [esp + 8]
test eax, eax
je 0x44d95a
movzx edx, byte [esp + 4]
mov ecx, dword [esp]
call fcn.00422910
jmp 0x44d985
mov edx, esi
push dword [esp + 0xc]
push edi
call fcn.004b7ec3
add esp, 8
test eax, eax
je 0x44d94b
mov edi, edx
movzx edx, byte [esp + 4]
mov ecx, dword [esp]
mov esi, eax
call fcn.00422910
push edi
call dword [esi + 4]
add esp, 4
test bl, bl
jne 0x44e0a0
mov eax, dword [esp + 0x3c8]
test eax, eax
je 0x44d9a5
push dword [esp + 0x3cc]
call dword [eax + 0xc]
add esp, 4
cmp dword [esp + 0x130], 0
je 0x44d3b6
lea ecx, [esp + 0x130]
call fcn.0045783c
jmp 0x44d3b6
mov edx, dword [esp]
add edx, 0xc
jmp 0x44d8ca
mov eax, dword [esp + 0x16c]
lock inc dword [eax]
jle 0x44f20a
mov dword [esp + 0x130], eax
xor eax, eax
lea edx, [esp + 0x178]
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], 4
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], edx
movsd xmm1, qword [esp + 0x138]
movq xmm0, qword [esp + 0x130]
movsd xmm2, qword [esp + 0x140]
movsd qword [esp + 0x98], xmm1
movsd xmm1, qword [esp + 0x148]
movq qword [esp + 0x90], xmm0
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm1
cmp dword [esp + 0x94], eax
jne 0x44f347
mov ebx, dword [esp + 0x98]
lea eax, [esp + 0x90]
mov dword [esp + 0x98], 0
test ebx, ebx
je 0x44f351
lea ecx, [esp + 0x1018]
mov dword [esp + 0x40], eax
mov dword [esp + 0x94], 0
mov esi, eax
mov dword [esp + 0x44], ecx
xor ecx, ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], eax
call fcn.004b8f96
test eax, eax
je 0x44f394
mov edi, eax
lea eax, [esp + 0x98]
lea edx, [esp + 0x3c]
mov ecx, dword [edi + 0x24]
mov dword [edi + 0x24], esi
lea esi, [esp + 0x88]
mov eax, dword [eax - 8]
mov dword [esp + 8], ecx
lea ecx, [eax + 8]
mov byte [eax + 0x74], 1
mov dword [esp + 0x88], 0x52cb88
mov dword [edx], esi
mov dword [esp], edi
mov dword [esp + 0x8c], ecx
xor ecx, ecx
xchg byte [eax + 0x74], cl
test cl, cl
je 0x44dbfe
cmp dword [esp + 0x94], 0
jne 0x44f1e2
mov dword [esp + 0x94], 0xffffffff
cmp dword [esp + 0x98], 0
je 0x44db52
lea ecx, [esp + 0x98]
call fcn.0044f52a
mov eax, dword [esp + 0x94]
inc eax
jmp 0x44db54
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x94], eax
call fcn.004b8f96
test eax, eax
je 0x44dba8
mov cl, byte [eax + 0x34]
mov bh, byte [eax + 0x35]
lea edx, [esp + 0x3c]
mov word [eax + 0x34], 0x8001
mov byte [esp + 4], cl
lea ecx, [esp + 0x1018]
call fcn.00471868
xor ecx, ecx
mov bl, al
call fcn.004b8f96
test eax, eax
je 0x44dba4
mov cl, byte [esp + 4]
mov byte [eax + 0x34], cl
mov byte [eax + 0x35], bh
mov eax, ebx
jmp 0x44dbb8
lea ecx, [esp + 0x1018]
lea edx, [esp + 0x3c]
call fcn.00471868
cmp dword [esp + 0x94], 0
jne 0x44f1ec
mov dword [esp + 0x94], 0xffffffff
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x98], 0
test ebx, ebx
je 0x44f1f6
test al, al
mov dword [esp + 0x94], 0
je 0x44f089
mov eax, dword [esp + 0x90]
mov edi, dword [eax + 0x48]
test edi, edi
je 0x44dd63
cmp byte [ebx + 0x38], 0
jne 0x44e0d5
mov eax, dword [ebx + 0x30]
mov esi, dword [ebx + 0x34]
inc eax
test esi, esi
mov dword [ebx + 0x30], eax
je 0x44f0e5
mov ecx, dword [esp + 0x90]
xor edx, edx
div esi
test edx, edx
je 0x44dc55
mov eax, dword [ebx + 0x2c]
test eax, eax
jne 0x44dc6e
add ecx, 0x28
call fcn.004b987c
mov esi, eax
test eax, eax
jne 0x44dc94
jmp 0x44dd89
add ecx, 0x28
call fcn.004b987c
mov esi, eax
test eax, eax
jne 0x44dc94
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x44dd89
mov ecx, dword [ebx + 0x28]
mov edx, dword [ebx + 0x20]
lea esi, [ecx + 1]
cmp esi, edx
mov esi, 0
cmovb edx, esi
dec eax
neg edx
lea edx, [ecx + edx + 1]
mov dword [ebx + 0x28], edx
mov dword [ebx + 0x2c], eax
mov eax, dword [ebx + 0x24]
mov esi, dword [eax + ecx*4]
cmp dword [esp + 0x94], 0
jne 0x44f1e2
mov dword [esp + 0x94], 0xffffffff
cmp dword [esp + 0x98], 0
je 0x44dccd
lea ecx, [esp + 0x98]
call fcn.0044f52a
mov eax, dword [esp + 0x94]
inc eax
jmp 0x44dccf
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x94], eax
call fcn.004b8f96
test eax, eax
je 0x44dcf6
mov bl, byte [eax + 0x34]
mov bh, byte [eax + 0x35]
mov word [eax + 0x34], 0x8001
jmp 0x44dcf8
mov bl, 2
mov eax, dword [esi + 8]
push esi
call dword [eax]
add esp, 4
cmp bl, 2
je 0x44dd17
xor ecx, ecx
call fcn.004b8f96
test eax, eax
je 0x44dd17
mov byte [eax + 0x34], bl
mov byte [eax + 0x35], bh
cmp dword [esp + 0x94], 0
jne 0x44f1ec
mov dword [esp + 0x94], 0xffffffff
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x98], 0
test ebx, ebx
je 0x44f1f6
dec edi
mov dword [esp + 0x94], 0
jne 0x44dc10
mov eax, dword [esp + 0x90]
add eax, 8
lea ecx, [esp + 0x90]
mov edx, ebx
push eax
call fcn.004b7a70
add esp, 4
mov edi, dword [esp]
mov ebx, eax
mov eax, dword [esp + 0x90]
jmp 0x44db0c
cmp dword [esp + 0x9c], 0x7fffffff
jae 0x44f41c
cmp dword [esp + 0xa8], 0
mov esi, dword [esp + 0x90]
mov edi, dword [esp]
lea ecx, [esp + 0x90]
je 0x44ddc5
add esi, 8
mov edx, ebx
push esi
call fcn.004b7a70
add esp, 4
jmp 0x44dd7b
mov eax, dword [ebx]
mov dword [ebx], 2
cmp eax, 2
je 0x44f426
mov dword [esp + 0x1b8], eax
lea ecx, [esp + 0x1bc]
mov eax, dword [ebx + 0x1c]
mov dword [ecx + 0x18], eax
movsd xmm0, qword [ebx + 0x14]
movsd qword [ecx + 0x10], xmm0
movq xmm0, qword [ebx + 4]
movsd xmm1, qword [ebx + 0xc]
movsd qword [ecx + 8], xmm1
movq qword [ecx], xmm0
mov eax, dword [esi + 0x50]
test eax, eax
je 0x44deab
cmp dword [esp + 0x94], 0
jne 0x44f1e2
mov dword [esp + 0x94], 0xffffffff
mov ecx, dword [esp + 0x98]
test ecx, ecx
je 0x44de48
call fcn.004b57a1
mov ecx, dword [esp + 0x94]
mov eax, dword [esi + 0x50]
inc ecx
jmp 0x44de4a
xor ecx, ecx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x94], ecx
mov ecx, dword [esi + 0x54]
mov edx, dword [ecx + 8]
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
push eax
call dword [ecx + 0x14]
add esp, 4
cmp dword [esp + 0x94], 0
jne 0x44f1ec
mov dword [esp + 0x94], 0xffffffff
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x98], 0
test ebx, ebx
je 0x44f1f6
mov dword [esp + 0x94], 0
cmp dword [ebx + 0x2c], 0
jne 0x44df71
cmp dword [esp + 0x94], 0
jne 0x44f1e2
mov dword [esp + 0x94], 0xffffffff
mov ecx, dword [esp + 0x98]
test ecx, ecx
je 0x44dee8
call fcn.004b57a1
mov eax, dword [esp + 0x94]
inc eax
jmp 0x44deea
xor eax, eax
cmp dword [esp + 0x1b8], 0
lea edx, [esi + 0x78]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x94], eax
je 0x44df13
lea ecx, [esp + 0x1bc]
call fcn.004b77da
jmp 0x44df27
lea ecx, [esp + 0x1bc]
push 0x3b9aca00
call fcn.004b74e8
add esp, 4
lea ecx, [esp + 0x9c]
call fcn.004b781f
cmp dword [esp + 0x94], 0
jne 0x44f1ec
mov dword [esp + 0x94], 0xffffffff
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x98], 0
test ebx, ebx
je 0x44f1f6
mov dword [esp + 0x94], 0
mov eax, dword [esi + 0x58]
test eax, eax
je 0x44e015
cmp dword [esp + 0x94], 0
jne 0x44f1e2
mov dword [esp + 0x94], 0xffffffff
mov ecx, dword [esp + 0x98]
test ecx, ecx
je 0x44dfb2
call fcn.004b57a1
mov ecx, dword [esp + 0x94]
mov eax, dword [esi + 0x58]
inc ecx
jmp 0x44dfb4
xor ecx, ecx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x94], ecx
mov ecx, dword [esi + 0x5c]
mov edx, dword [ecx + 8]
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
push eax
call dword [ecx + 0x14]
add esp, 4
cmp dword [esp + 0x94], 0
jne 0x44f1ec
mov dword [esp + 0x94], 0xffffffff
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x98], 0
test ebx, ebx
je 0x44f1f6
mov dword [esp + 0x94], 0
movsd xmm1, qword [esp + 0x1c8]
movsd xmm0, qword [esp + 0x1d0]
movsd xmm2, qword [esp + 0x1b8]
mov ecx, ebx
movsd qword [esp + 0x3c8], xmm1
movsd xmm1, qword [esp + 0x1c0]
movsd qword [esp + 0x3d0], xmm0
movsd qword [esp + 0x3b8], xmm2
movsd qword [esp + 0x3c0], xmm1
call fcn.004b6102
movsd xmm0, qword [esp + 0x3d0]
movsd qword [ebx + 0x18], xmm0
movsd xmm0, qword [esp + 0x3c8]
movsd qword [ebx + 0x10], xmm0
movq xmm0, qword [esp + 0x3b8]
movsd xmm1, qword [esp + 0x3c0]
movsd qword [ebx + 8], xmm1
movq qword [ebx], xmm0
jmp 0x44dd7d
mov eax, dword [esp + 0x3c8]
mov ebx, 1
test eax, eax
je 0x44e0bd
push dword [esp + 0x3cc]
call dword [eax + 0xc]
add esp, 4
cmp dword [esp + 0x130], 0
je 0x44e13f
lea ecx, [esp + 0x130]
call fcn.0045783c
jmp 0x44e13f
mov eax, dword [esp]
mov ecx, dword [esp + 8]
cmp dword [esp + 0x94], 0
mov dword [eax + 0x24], ecx
mov al, 1
jne 0x44f365
mov dword [esp + 0x94], 0xffffffff
mov esi, eax
cmp dword [esp + 0x98], 0
je 0x44e11c
lea ecx, [esp + 0x98]
call fcn.0044f52a
mov eax, dword [esp + 0x94]
inc eax
jmp 0x44e11e
xor eax, eax
lea ecx, [esp + 0x90]
mov dword [ecx + 8], ebx
mov dword [ecx + 4], eax
call fcn.0045783c
mov eax, esi
mov ebx, 1
test al, al
jne 0x44f3b5
xor ecx, ecx
call fcn.004b8f96
test eax, eax
je 0x44f3e1
cmp byte [eax + 0x36], 2
mov esi, eax
je 0x44f333
mov byte [esi + 0x36], 2
cmp dword [esi + 0x28], 0
jne 0x44e169
call fcn.004b4293
lea edi, [esp + 0x150]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x28], 1
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], ecx
mov ecx, edi
mov edx, dword [edi + 4]
call fcn.004b56dc
mov eax, dword [edi]
test eax, eax
je 0x44e1a4
lock dec dword [eax]
jne 0x44e1a4
lea ecx, [esp + 0x150]
call fcn.004b515b
movzx eax, byte [esp + 0x116c]
cmp eax, 3
je 0x44e1d8
test eax, eax
jne 0x44e1fa
lea ecx, [esp + 0x1018]
call fcn.00442a23
lea ecx, [esp + 0x1154]
call fcn.00442a00
mov ecx, dword [esp + 0x14]
call fcn.00442af3
jmp 0x44e1fa
lea esi, [esp + 0x115c]
mov ecx, esi
call fcn.00442af3
mov eax, dword [esi - 4]
lock dec dword [eax]
jne 0x44e1fa
lea ecx, [esp + 0x1158]
call fcn.0044f930
lea esi, [esp + 0x80]
mov edx, dword [esi + 4]
mov ecx, esi
call fcn.004b56dc
mov eax, dword [esi]
test eax, eax
je 0x44e222
lock dec dword [eax]
jne 0x44e222
lea ecx, [esp + 0x80]
call fcn.004b515b
lea edi, [esp + 0x1018]
lea esi, [esp + 0x16c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
xor esi, esi
call fcn.004b8f96
test eax, eax
mov ecx, 0
je 0x44e267
mov edx, dword [esp + 0x1018]
mov ecx, eax
call fcn.004b7482
mov ecx, ebx
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], edx
mov dword [esp + 0x90], ecx
xchg dword [esp + 0x1024], esi
test esi, esi
je 0x44e969
mov edi, dword [esp + 0x1018]
lock inc dword [edi]
jle 0x44f20a
xor ecx, ecx
mov dword [esp + 0x1b8], edi
lea eax, [esp + 0x1024]
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1c0], esi
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1cc], 4
mov dword [esp + 0x1d0], ecx
xor ecx, ecx
mov dword [esp + 0x1d4], eax
call fcn.004b8f96
test eax, eax
je 0x44e3d8
cmp dword [eax + 0x18], 0x7fffffff
jae 0x44f36f
cmp dword [eax + 0x1c], 0
je 0x44e3d8
movq xmm0, qword [esp + 0x1b8]
movsd xmm1, qword [esp + 0x1c0]
movsd xmm3, qword [esp + 0x1d0]
movsd xmm2, qword [esp + 0x1c8]
movq qword [esp + 0x3b8], xmm0
movsd qword [esp + 0x3d0], xmm3
movsd qword [esp + 0x3c8], xmm2
movsd qword [esp + 0x3c0], xmm1
cmp dword [esp + 0x3bc], 0
jne 0x44f347
mov esi, dword [esp + 0x3c0]
mov dword [esp + 0x3c0], 0
test esi, esi
je 0x44f351
xor ecx, ecx
mov dword [esp + 0x3bc], 0
call fcn.004b8f96
test eax, eax
je 0x44f3da
mov edi, eax
mov ebx, dword [eax + 0x24]
lea eax, [esp + 0x3b8]
mov ecx, esi
mov dword [edi + 0x24], eax
mov edx, dword [esp + 0x1018]
add edx, 8
call fcn.004b57db
mov dword [edi + 0x24], ebx
cmp dword [esp + 0x3bc], 0
jne 0x44f365
mov dword [esp + 0x3bc], 0xffffffff
mov ecx, dword [esp + 0x3c0]
test ecx, ecx
je 0x44e3f7
call fcn.004b57a1
mov eax, dword [esp + 0x3bc]
inc eax
jmp 0x44e3f9
add edi, 8
mov ecx, esi
mov edx, edi
call fcn.004b57db
lea ecx, [esp + 0x1b8]
mov dword [ecx + 8], esi
mov dword [ecx + 4], 0
jmp 0x44e406
xor eax, eax
lea ecx, [esp + 0x3b8]
mov dword [ecx + 8], esi
mov dword [ecx + 4], eax
call fcn.004b7da3
cmp dword [esp + 0x90], 0
je 0x44e438
lea esi, [esp + 0x94]
mov edx, dword [esi + 4]
mov ecx, esi
call fcn.004b56dc
mov eax, dword [esi]
test eax, eax
je 0x44e438
lock dec dword [eax]
jne 0x44e438
mov ecx, esi
call fcn.004b515b
xor ecx, ecx
xchg dword [esp + 0x1024], ecx
test ecx, ecx
je 0x44e44a
call fcn.004b57a1
mov eax, dword [esp + 0x1018]
lock dec dword [eax]
jne 0x44e462
lea ecx, [esp + 0x1018]
call fcn.004b515b
mov edi, dword [esp + 0x101c]
lea esi, [edi + 0x28]
push esi
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x538034]
test eax, 0x7fffffff
jne 0x44e99b
xor eax, eax
mov cl, byte [edi + 0x2c]
cmp byte [edi + 0x78], 0
je 0x44e49d
movzx edx, al
mov ecx, esi
call fcn.00422910
jmp 0x44f00e
mov byte [edi + 0x78], 1
mov dword [esp], eax
mov eax, dword [edi + 0x64]
test eax, eax
je 0x44e4b8
lock dec dword [eax]
jne 0x44e4b8
lea ecx, [edi + 0x64]
call fcn.004b52ad
xor ebx, ebx
mov eax, 0x90
mov dword [edi + 0x64], ebx
add eax, dword [esp + 0x101c]
push eax
call dword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
mov eax, dword [edi + 0x70]
mov dword [esp + 0x48], eax
movsd xmm0, qword [edi + 0x68]
movsd qword [esp + 0x40], xmm0
mov dword [edi + 0x68], ebx
call fcn.004b3470
test eax, eax
je 0x44f261
mov ebx, dword [eax]
mov edx, dword [eax + 4]
movq xmm0, qword [eax + 8]
movsd xmm3, qword [0x52c378]
mov ecx, ebx
add ecx, 1
mov dword [eax], ecx
mov ecx, edx
adc ecx, 0
mov dword [eax + 4], ecx
mov ecx, esi
movsd xmm1, qword [edi + 0x58]
movsd qword [esp + 0xa8], xmm1
movsd xmm1, qword [edi + 0x50]
movsd qword [esp + 0xa0], xmm1
movsd xmm2, qword [edi + 0x48]
movsd xmm1, qword [edi + 0x40]
movsd qword [esp + 0x98], xmm2
movsd xmm2, qword [0x52c370]
movsd qword [esp + 0x90], xmm1
movsd qword [edi + 0x48], xmm3
movsd qword [edi + 0x40], xmm2
mov dword [edi + 0x54], edx
movzx edx, byte [esp]
mov dword [edi + 0x50], ebx
movq qword [edi + 0x58], xmm0
call fcn.00422910
xor ecx, ecx
call fcn.004b8f96
test eax, eax
je 0x44e588
cmp byte [eax + 0x36], 2
jne 0x44f0a3
call fcn.004b7294
test eax, eax
je 0x44e620
lea esi, [esp + 0x1020]
lea edi, [esp + 0x1b8]
lea ecx, [esp + 0x3b8]
mov dword [esp + 0x3b8], eax
mov dword [esp + 0x3bc], edx
mov dword [edi], ecx
xor ecx, ecx
call fcn.004b8f96
test eax, eax
je 0x44e5f5
mov cl, byte [eax + 0x35]
mov bh, byte [eax + 0x34]
mov edx, edi
mov word [eax + 0x34], 0x8001
mov byte [esp], cl
mov ecx, esi
call fcn.004b3eb6
xor ecx, ecx
mov bl, al
call fcn.004b8f96
test eax, eax
je 0x44e600
mov cl, byte [esp]
mov byte [eax + 0x34], bh
mov byte [eax + 0x35], cl
jmp 0x44e600
mov ecx, esi
mov edx, edi
call fcn.004b3eb6
mov ebx, eax
cmp bl, 2
jne 0x44e60c
call fcn.004b736e
jmp 0x44e5ba
mov eax, dword [esp + 0x3b8]
push dword [esp + 0x3bc]
call dword [eax + 0xc]
add esp, 4
cmp dword [esp + 0x40], 0
je 0x44e65c
lea ecx, [esp + 0x40]
call fcn.004b5595
test eax, eax
je 0x44e65c
mov esi, eax
mov edi, edx
push eax
call dword [edx]
add esp, 4
cmp dword [edi + 4], 0
je 0x44e65c
cmp dword [edi + 8], 9
jb 0x44e64d
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x537fc8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0x9c]
movdqa xmm0, xmmword [eax]
test esi, esi
je 0x44e6ac
lea edx, [esi + 1]
mov dword [esp], 0
cmp edx, 0xfffffff
ja 0x44e6a3
mov ebx, edx
add esi, 0x11
shl ebx, 4
add esi, ebx
jb 0x44e6a3
cmp esi, 0x7ffffff1
jb 0x44f097
mov edi, eax
sub edi, ebx
mov ebx, dword [esp]
jmp 0x44e6b1
xor ebx, ebx
xor edx, edx
inc edx
mov dword [esp + 0x1b8], ebx
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x1c0], edi
add edx, eax
lea esi, [eax + 0x10]
pmovmskb edi, xmm0
mov dword [esp + 0x1c4], eax
test ecx, ecx
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x1cc], edx
mov edx, edi
not edx
mov word [esp + 0x1d0], dx
mov dword [esp + 0x1d4], ecx
je 0x44e958
cmp di, 0xffff
jne 0x44e72d
movdqa xmm0, xmmword [esi]
add eax, 0xffffff00
add esi, 0x10
pmovmskb edx, xmm0
cmp edx, 0xffff
je 0x44e705
not edx
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x1c4], eax
lea esi, [edx - 1]
dec ecx
and esi, edx
bsf edx, edx
shl edx, 4
mov word [esp + 0x1d0], si
mov dword [esp + 0x1d4], ecx
sub eax, edx
mov edi, dword [eax - 0xc]
test edi, edi
je 0x44e958
xor edx, edx
mov ebx, 4
dec edx
inc ecx
cmove ecx, edx
cmp ecx, 5
cmovae ebx, ecx
cmp ebx, 0x7ffffff
ja 0x44f3fe
mov esi, ebx
shl esi, 4
js 0x44f3fe
mov ecx, dword [eax - 4]
mov edx, 4
mov dword [esp], ecx
mov ecx, dword [eax - 0x10]
mov eax, dword [eax - 8]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov ecx, esi
mov al, byte [0x538038]
call fcn.00439850
test eax, eax
je 0x44f3ce
mov ecx, dword [esp + 8]
xor edx, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], 0
inc edx
mov dword [esp + 0x10], edx
mov dword [eax], ecx
mov ecx, dword [esp + 4]
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov ecx, dword [esp]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0x130]
movsd xmm1, qword [esp + 0x1c0]
movq xmm0, qword [esp + 0x1d0]
movsd xmm2, qword [esp + 0x1b8]
mov dword [ecx], ebx
mov dword [ecx + 4], eax
mov dword [ecx + 8], 1
movsd qword [esp + 0x3c0], xmm1
movsd xmm1, qword [esp + 0x1c8]
movq qword [esp + 0x3d0], xmm0
movsd qword [esp + 0x3b8], xmm2
movsd qword [esp + 0x3c8], xmm1
mov ebx, dword [esp + 0x3d4]
movzx ecx, word [esp + 0x3d0]
mov edi, dword [esp + 0x3c4]
mov esi, dword [esp + 0x3c8]
test ebx, ebx
je 0x44e9a7
test cx, cx
je 0x44e870
lea edx, [ecx - 1]
dec ebx
and edx, ecx
test edi, edi
mov word [esp + 0x3d0], dx
jne 0x44e8a7
jmp 0x44e9a9
movdqa xmm0, xmmword [esi]
add edi, 0xffffff00
add esi, 0x10
pmovmskb ecx, xmm0
cmp ecx, 0xffff
je 0x44e870
not ecx
mov dword [esp + 0x3c8], esi
mov dword [esp + 0x3c4], edi
dec ebx
lea edx, [ecx - 1]
and edx, ecx
mov word [esp + 0x3d0], dx
bsf eax, ecx
mov ecx, edi
mov dword [esp + 4], edx
shl eax, 4
sub ecx, eax
mov eax, dword [ecx - 0xc]
test eax, eax
mov dword [esp + 8], eax
je 0x44e9a9
mov dword [esp], ebx
mov ebx, dword [ecx - 0x10]
mov dword [esp + 0x1c], ebx
mov ebx, dword [ecx - 4]
mov ecx, dword [ecx - 8]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
cmp ebx, dword [esp + 0x130]
je 0x44e92d
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, ebx
inc ebx
dec dword [esp + 0x28]
shl ecx, 4
mov dword [esp + 0x10], ebx
mov dword [eax + ecx], edx
mov edx, dword [esp + 8]
mov dword [eax + ecx + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx + 0xc], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx + 8], edx
mov dword [esp + 0x138], ebx
mov ebx, dword [esp]
mov ecx, dword [esp + 4]
jmp 0x44e84c
mov eax, dword [esp]
mov ecx, 0xffffffff
mov edx, ebx
inc eax
cmove eax, ecx
lea ecx, [esp + 0x130]
push eax
call fcn.004ecfde
add esp, 4
mov ecx, dword [esp + 0x134]
mov dword [esp + 0x14], ecx
jmp 0x44e8e9
lea ecx, [esp + 0x1b8]
call fcn.004b36e0
jmp 0x44f00e
mov eax, dword [0x538034]
test eax, 0x7fffffff
je 0x44e982
call fcn.004ec480
test al, al
je 0x44e40b
lea ecx, [esp + 0x3b8]
mov edx, 0x52b9cc
xor eax, eax
mov dword [ecx], 0x52b948
jmp 0x44f18f
call fcn.004ec480
xor al, 1
jmp 0x44e485
xor ebx, ebx
lea ecx, [esp + 0x3b8]
mov dword [ecx + 0x1c], ebx
call fcn.004b36e0
mov eax, dword [esp + 0x134]
mov esi, dword [esp + 0x130]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], esi
cmp eax, 0x15
jae 0x44ea00
cmp eax, 1
mov esi, eax
jbe 0x44ef60
mov edi, esi
mov esi, dword [esp + 0x24]
mov edx, edi
mov ecx, esi
push 1
call fcn.004b91e4
add esp, 4
shl edi, 4
add edi, esi
jmp 0x44ef71
mov dword [esp + 0x10], eax
lea ecx, [eax*8]
mov edx, 4
mov al, byte [0x538038]
and ecx, 0x7ffffff0
call fcn.00439850
test eax, eax
mov dword [esp + 8], eax
je 0x44f43a
mov al, byte [0x538038]
mov ecx, 0x80
mov edx, 4
call fcn.00439850
test eax, eax
je 0x44f44e
mov ebx, eax
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x34], 0x10
lea ecx, [eax + 0x20]
add eax, 0xfffffff0
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x14], edi
mov edi, eax
mov eax, esi
sub eax, edi
mov dword [esp], edi
shl edi, 4
cmp eax, 2
lea edx, [edx + edi]
mov dword [esp + 4], edx
jae 0x44eae4
mov edx, esi
mov ecx, esi
mov edi, dword [esp + 0x14]
mov edx, dword [esp]
mov esi, ecx
sub esi, edx
jb 0x44f22f
cmp ecx, dword [esp + 0x10]
ja 0x44f22f
jae 0x44eb12
cmp eax, 0xa
jae 0x44eb12
mov ecx, dword [esp + 0x10]
lea esi, [edx + 0xa]
cmp esi, ecx
cmovae esi, ecx
mov dword [esp + 0x54], esi
sub esi, edx
jb 0x44f27e
mov ecx, dword [esp + 4]
cmp eax, 1
mov edx, esi
adc eax, 0
push eax
call fcn.004b91e4
add esp, 4
mov edx, dword [esp]
jmp 0x44eb16
mov ecx, dword [edx]
mov esi, dword [edx + 0x10]
cmp esi, ecx
jae 0x44ee14
mov edx, dword [esp]
cmp eax, 2
jne 0x44ee2d
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
lea ecx, [edx + 2]
mov eax, 2
jmp 0x44eeb3
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x34]
cmp edi, eax
jne 0x44eb79
mov dword [esp + 0xc], ebx
mov ecx, eax
mov edi, eax
mov edx, 4
mov al, byte [0x538038]
shl ecx, 4
call fcn.00439850
test eax, eax
je 0x44f28f
mov ebx, eax
lea eax, [edi + edi]
shl edi, 3
mov dword [esp + 4], eax
push edi
mov edi, dword [esp + 0x10]
push edi
push ebx
call fcn.004e4a90
add esp, 0xc
push edi
push 0
push dword [0x537fc8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x14]
mov edx, dword [esp]
mov dword [esp + 0x34], eax
mov dword [ebx + edi*8], esi
mov esi, dword [esp + 0x10]
mov dword [ebx + edi*8 + 4], edx
inc edi
mov dword [esp + 0xc], ebx
cmp edi, 2
jb 0x44ee03
mov eax, dword [ebx + edi*8 - 8]
mov ecx, dword [ebx + edi*8 - 4]
add ecx, eax
cmp ecx, esi
je 0x44ebe1
mov edx, dword [ebx + edi*8 - 0x10]
cmp edx, eax
jbe 0x44ebe1
cmp edi, 2
jbe 0x44ee03
lea ecx, [edi - 3]
lea esi, [edx + eax]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + edi*8 - 0x18]
cmp ecx, esi
jbe 0x44ebf3
mov esi, dword [esp + 0x10]
cmp edi, 3
jbe 0x44ee03
add edx, ecx
cmp dword [ebx + edi*8 - 0x20], edx
mov ebx, dword [esp + 0x18]
jbe 0x44ebfb
jmp 0x44ef36
cmp edi, 3
jb 0x44ebff
mov ecx, dword [esp + 0xc]
lea ebx, [edi - 3]
mov ecx, dword [ecx + edi*8 - 0x18]
jmp 0x44ebfb
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
cmp ecx, eax
jb 0x44ec02
lea ebx, [edi - 2]
cmp edi, ebx
jbe 0x44f16d
lea eax, [ebx + 1]
mov ecx, edi
mov dword [esp + 0x14], edi
cmp edi, eax
jbe 0x44f17b
mov edx, dword [esp + 0xc]
mov edi, esi
mov eax, dword [edx + ebx*8 + 8]
mov esi, dword [edx + ebx*8 + 0xc]
mov ecx, dword [edx + ebx*8 + 4]
add esi, eax
mov edx, esi
sub edx, ecx
mov dword [esp + 0x1c], edx
jb 0x44f1a8
cmp esi, edi
ja 0x44f1b4
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x12c], ecx
shl ecx, 4
mov dword [esp + 0x18], ebx
shl esi, 4
add ecx, dword [esp + 0x24]
mov dword [esp], esi
lea eax, [eax + ebx*8]
mov edi, dword [eax]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], ecx
mov ebx, edi
sub eax, edi
mov dword [esp + 0x120], edi
shl ebx, 4
cmp eax, edi
lea esi, [ecx + ebx]
jae 0x44ed1f
mov ebx, eax
mov dword [esp + 0x1c], eax
shl ebx, 4
push ebx
push esi
push dword [esp + 0x10]
call fcn.004e4a90
add esp, 0xc
add ebx, dword [esp + 8]
test edi, edi
jle 0x44ed17
cmp dword [esp + 0x1c], 0
jle 0x44ed17
mov ecx, dword [esp]
add ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [esi - 0x10]
mov edi, esi
mov esi, 0
mov eax, ebx
mov ebx, 0
cmp ecx, edx
sbb esi, esi
cmp ecx, edx
adc ebx, 0xffffffff
shl esi, 4
shl ebx, 4
add esi, edi
add ebx, eax
cmp ecx, edx
mov ecx, dword [esp]
mov eax, ebx
cmovb eax, esi
cmp esi, dword [esp + 4]
movq xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ecx + 8], xmm1
movq qword [ecx], xmm0
jbe 0x44ed17
add ecx, 0xfffffff0
cmp ebx, dword [esp + 8]
ja 0x44ecc2
mov eax, dword [esp + 8]
mov ecx, esi
jmp 0x44ed9c
push ebx
push ecx
push dword [esp + 0x10]
call fcn.004e4a90
add esp, 0xc
add ebx, dword [esp + 8]
test edi, edi
jle 0x44ed94
cmp dword [esp + 0x1c], edi
jle 0x44ed94
mov ecx, dword [esp]
mov eax, dword [esp + 8]
add ecx, dword [esp + 0x24]
mov dword [esp], ecx
mov edx, dword [esi]
mov edi, eax
xor eax, eax
xor ecx, ecx
cmp edx, dword [edi]
mov edx, edi
cmovb edx, esi
setae al
movq xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
setb dl
shl eax, 4
add eax, edi
mov edi, dword [esp + 4]
movsd qword [edi + 8], xmm1
movq qword [edi], xmm0
add edi, 0x10
cmp eax, ebx
mov dword [esp + 4], edi
jae 0x44ed98
mov cl, dl
mov edx, dword [esp]
shl ecx, 4
add esi, ecx
cmp esi, edx
jb 0x44ed49
jmp 0x44ed98
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x14]
sub ebx, eax
lea esi, [edi - 1]
push ebx
push eax
push ecx
call fcn.004e4a90
add esp, 0xc
mov eax, dword [esp + 0x128]
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x124]
add eax, dword [esp + 0x120]
mov dword [ebx + ecx*8 + 8], eax
mov eax, dword [esp + 0x12c]
mov dword [ebx + ecx*8 + 0xc], eax
not ecx
lea eax, [edx + 8]
add ecx, edi
shl ecx, 3
push ecx
push eax
push edx
call fcn.004e5010
add esp, 0xc
cmp esi, 1
mov edi, esi
mov esi, dword [esp + 0x10]
ja 0x44eb92
xor edi, edi
inc edi
mov eax, dword [esp + 0x54]
cmp eax, esi
jb 0x44ea6c
jmp 0x44ef3f
mov edx, dword [esp]
cmp eax, 2
jne 0x44ee5f
mov edi, dword [esp + 0x14]
lea ecx, [edx + 2]
mov eax, 2
jmp 0x44ea97
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x28]
add edi, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
add edx, ebx
mov ebx, 2
mov ecx, esi
mov esi, dword [edi]
cmp esi, ecx
jae 0x44ee91
lea ecx, [edx + ebx + 1]
inc ebx
add edi, 0x10
cmp ecx, 1
jne 0x44ee48
jmp 0x44ee8f
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x28]
add edi, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
add edx, ebx
mov ebx, 2
mov ecx, esi
mov esi, dword [edi]
cmp esi, ecx
jb 0x44ee91
lea ecx, [edx + ebx + 1]
inc ebx
add edi, 0x10
cmp ecx, 1
jne 0x44ee7a
mov ebx, eax
mov edx, dword [esp]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
cmp eax, dword [esp + 0x18]
lea ecx, [ebx + edx]
mov eax, ebx
mov ebx, dword [esp + 0xc]
jae 0x44ea97
cmp edx, ecx
ja 0x44f379
cmp ecx, esi
ja 0x44f388
cmp eax, 2
jb 0x44ea94
mov esi, dword [esp]
mov edi, dword [esp + 4]
mov edx, eax
shr edx, 1
add esi, eax
shl esi, 4
add esi, dword [esp + 0x38]
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [esp + 0x3c0], xmm1
movsd qword [esp + 0x3b8], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
add edi, 0x10
movq xmm0, qword [esp + 0x3b8]
movsd xmm1, qword [esp + 0x3c0]
movsd qword [esi + 8], xmm1
movq qword [esi], xmm0
add esi, 0xfffffff0
dec edx
jne 0x44eee0
jmp 0x44ea90
mov ebx, dword [esp + 0xc]
jmp 0x44ee03
xor eax, eax
push ebx
push eax
xor ebx, ebx
push dword [0x537fc8]
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
call edi
push dword [esp + 8]
push ebx
push dword [0x537fc8]
call edi
mov edi, esi
mov eax, esi
mov esi, dword [esp + 0x24]
shl edi, 4
add edi, esi
test eax, eax
je 0x44efe1
mov esi, dword [esp + 0x24]
mov dword [esp], edi
mov eax, dword [esi + 4]
test eax, eax
je 0x44efde
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x3b8], eax
mov dword [esp + 0x3bc], ecx
lea ecx, [esp + 0x3b8]
mov dword [esp + 0x3c0], edx
call fcn.004b5595
test eax, eax
je 0x44efd2
mov ebx, eax
mov edi, edx
push eax
call dword [edx]
add esp, 4
cmp dword [edi + 4], 0
je 0x44efd2
cmp dword [edi + 8], 9
jb 0x44efc3
mov ebx, dword [ebx - 4]
push ebx
push 0
push dword [0x537fc8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edi, dword [esp]
add esi, 0x10
cmp esi, edi
jne 0x44ef78
jmp 0x44eff5
add esi, 0x10
sub edi, esi
je 0x44eff5
shr edi, 4
mov ecx, esi
call fcn.004b3738
add esi, 0x10
dec edi
jne 0x44efe8
cmp dword [esp + 0x50], 0
je 0x44f00e
push dword [esp + 0x24]
push 0
push dword [0x537fc8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x101c]
lock dec dword [eax]
jne 0x44f026
lea ecx, [esp + 0x101c]
call fcn.004b535e
mov ecx, dword [esp + 0x1020]
test ecx, ecx
je 0x44f081
mov ebx, dword [ecx + 0x18]
mov edx, ebx
mov eax, ebx
or edx, 4
lock cmpxchg dword [ecx + 0x18], edx
mov ebx, eax
jne 0x44f034
mov eax, ebx
and eax, 0xa
cmp eax, 8
jne 0x44f05a
mov eax, dword [ecx + 8]
push dword [ecx + 0xc]
call dword [eax + 8]
add esp, 4
mov eax, dword [esp + 0x1020]
test bl, 2
jne 0x44f06c
test eax, eax
jne 0x44f070
jmp 0x44f081
mov byte [eax + 0x1c], 0
lock dec dword [eax]
jne 0x44f081
mov ecx, dword [esp + 0x1020]
call fcn.004b5318
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 8]
mov dword [edi + 0x24], eax
xor eax, eax
jmp 0x44e0ef
mov dword [esp], 0x10
jmp 0x44e6a3
mov eax, dword [0x538034]
test eax, 0x7fffffff
je 0x44f403
call fcn.004ec480
test al, al
jne 0x44f403
lea ecx, [esp + 0x90]
call fcn.004b41b0
cmp dword [esp + 0x40], 0
je 0x44f00e
lea ecx, [esp + 0x40]
call fcn.0045195d
jmp 0x44f00e
mov ecx, str.attempt_to_calculate_the_remainder_with_a_divisor_of_zerodriver_missing
mov edx, 0x39
push 0x52ba1c
call fcn.004e8a30
mov ecx, 0x52c00b
mov edx, 0x28
push 0x52c150
call fcn.004e8a30
lea ecx, [esp + 0x40]
mov edx, 0x52b0ac
mov dword [esp + 0x1b8], 0
push 0x52c140
jmp 0x44f141
lea ecx, [esp + 0x40]
mov edx, 0x52c12c
mov dword [esp + 0x1b8], 0
push 0x52c130
lea eax, [esp + 0x1bc]
push eax
call fcn.004eca56
lea eax, [esp + 0x1b8]
add ecx, 8
mov dword [esp + 0x1b8], 0
lea edx, [esp + 0x40]
push eax
call fcn.004ecb05
lea ecx, [esp + 0x3b8]
mov edx, 0x52c3e0
jmp 0x44f187
lea ecx, [esp + 0x3b8]
mov edx, 0x52c3f0
xor eax, eax
mov dword [ecx], str.Index_out_of_bounds
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], eax
mov dword [ecx + 8], str.C:Usersigame.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_src_aes.rs0
mov dword [ecx + 0xc], eax
call fcn.004e88e0
mov edx, esi
push 0x52c400
call fcn.004e8bc0
mov edx, dword [esp + 0x10]
mov ecx, esi
push 0x52c400
call fcn.004e89d0
lea eax, [esp + 0x20]
mov ecx, 0x52291c
mov edx, 0x1b
push 0x522938
push 0x52210c
push eax
call fcn.004e8cc0
mov ecx, 0x52ba98
call fcn.004e8c20
mov ecx, 0x52baa8
call fcn.004e8c20
mov ecx, str.core_missingP
mov edx, 0xc
push 0x52bac4
call fcn.004e8d40
ud2
mov ecx, 0x52b37c
mov edx, 0x25
push 0x52b3a4
call fcn.004e8a30
mov ecx, 4
mov edx, 0x40
call fcn.004e8590
mov ecx, str.assertion_failed:_end___start__end___len
mov edx, 0x2c
push 0x52c46c
call fcn.004e8a30
mov ecx, 4
mov edx, 0xc
call fcn.004e8590
mov ecx, 4
mov edx, 8
call fcn.004e8590
lea eax, [esp + 0x20]
mov ecx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_src_threadlocal.rs
mov edx, 0x46
push 0x52c344
push 0x52c4dc
jmp 0x44f1dc
mov ecx, dword [esp]
mov edx, dword [esp + 0x54]
push 0x52c47c
call fcn.004e8bc0
mov ecx, str.called__Option::unwrap____on_a__None__value
mov edx, 0x2b
push 0x52c430
call fcn.004e8a30
mov ecx, 4
jmp 0x44f2af
mov ecx, 8
mov edx, 0x4000
call fcn.004e8590
mov ecx, 8
jmp 0x44f2d4
mov ecx, 8
mov edx, 0xc60
call fcn.004e8590
mov ecx, 4
mov edx, 0x20
call fcn.004e8590
mov ecx, 8
mov edx, 0xa8
call fcn.004e8590
mov ecx, 8
mov edx, 0xe8
call fcn.004e8590
mov ecx, 4
mov edx, pe_nt_image_headers32
call fcn.004e8590
mov ecx, 4
mov edx, 0x3c
call fcn.004e8590
lea ecx, [esp + 0x3b8]
mov edx, 0x52315c
xor eax, eax
mov dword [ecx], str.Cannot_start_a_runtime_from_within_a_runtime._This_happens_because_a_function__like__block_on___attempted_to_block_the_current_thread_while_the_thread_is_being_used_to_drive_asynchronous_tasks.
jmp 0x44f18f
mov ecx, str.assertion_failed:_c.runtime.get__.is_entered__C:Usersigame.cargo_registry_srcindex.crates.io_6f17d22bba15001f_tokio_1.38.0_src_runtimecontext_runtime.rs
mov edx, 0x2e
push 0x52b828
call fcn.004e8a30
mov ecx, 0x52bae4
call fcn.004e8c20
mov ecx, str.core_missingP
mov edx, 0xc
push 0x52baf4
call fcn.004e8d40
mov ecx, 0x52bb04
call fcn.004e8c20
mov ecx, 0x52b670
call fcn.004e8c70
mov edx, ecx
mov ecx, dword [esp]
push 0x52c3d0
call fcn.004e8bc0
mov edx, esi
push 0x52c3d0
call fcn.004e89d0
lea ecx, [esp + 0x48]
call fcn.0044f52a
lea eax, [esp + 0x20]
mov ecx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_src_threadlocal.rs
mov edx, 0x46
push 0x52c344
jmp 0x44f1d7
lea ecx, [esp + 0x3b8]
mov edx, 0x52290c
xor eax, eax
mov dword [ecx], str.a_spawned_task_panicked_and_the_runtime_is_configured_to_shut_down_on_unhandled_panic
jmp 0x44f18f
mov ecx, 4
mov edx, esi
call fcn.004e8590
mov ecx, esi
call fcn.004b57a1
lea eax, [esp + 0x20]
mov ecx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_src_threadlocal.rs
mov edx, 0x46
push 0x52c344
push 0x52b1b0
jmp 0x44f1dc
call fcn.00401890
lea ecx, [esp + 0x3b8]
mov edx, 0x52beec
xor eax, eax
mov dword [ecx], 0x52bee4
jmp 0x44f18f
mov ecx, 0x52bb94
call fcn.004e8c70
mov ecx, 0x52ba69
mov edx, 0xe
push 0x52ba78
call fcn.004e8d40
mov ecx, str.called__Option::unwrap____on_a__None__value
mov edx, 0x2b
push 0x52c410
call fcn.004e8a30
mov ecx, str.called__Option::unwrap____on_a__None__value
mov edx, 0x2b
push 0x52c420
call fcn.004e8a30