Function at 0x4d9b90
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb8
mov esi, dword [ecx + 4]
mov edi, dword [ecx]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x68], edx
mov eax, dword [esi + 0xac]
movzx ecx, byte [edi + 0x27c]
mov dword [esp + 0x80], eax
mov eax, edx
movsd xmm0, qword [esi + 0xa4]
and eax, 0x7ffffff
mov dword [esp + 0x88], eax
shr eax, cl
call 0x4d9bdd
pop ecx
mov dword [esp + 0x70], ecx
movsd qword [esp + 0x78], xmm0
mov dword [esi + 0xa4], 0
mov dword [esi + 0xa8], 1
mov dword [esi + 0xac], 0
mov edx, dword [esi + 0x94]
cmp eax, edx
jae 0x4dabdc
mov edx, dword [esi + 0x90]
movzx ecx, byte [edi + 0x50]
mov ebx, dword [edx + eax*8]
mov edx, dword [edx + eax*8 + 4]
mov eax, dword [edi + 0x278]
mov dword [esi + 0x48], 0
mov byte [esp + 0x6c], cl
mov dword [esi + 0x64], 0
test edx, edx
je 0x4dabce
mov dword [esp + 0xc], ebx
add ebx, 8
movzx ecx, byte [eax + 0x15c]
mov dword [esp + 0x1c], eax
mov eax, 9
test byte [ebx], 2
mov byte [esp + 0x20], cl
je 0x4d9c93
cmp edx, 0xc
jbe 0x4dad42
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x11]
test ecx, ecx
je 0x4d9c93
cmp ecx, 0x40000000
jae 0x4dadbc
shl ecx, 2
add ecx, 0xd
mov eax, ecx
jb 0x4dadd0
cmp edx, eax
jb 0x4dad13
mov dword [esp + 0x64], edx
sub edx, eax
mov dword [esp + 0x8c], edi
mov dword [esp + 8], esi
mov dword [esp + 0x60], ebx
mov dword [esp + 4], edx
je 0x4d9df6
mov edx, dword [esi + 0x40]
add eax, ebx
mov ecx, dword [esi + 0x44]
mov ebx, dword [esi + 0x34]
xor edi, edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0x38]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x18], edx
jmp 0x4d9d0f
mov edx, dword [esp + 0x24]
mov dword [edx + ecx*4], edi
inc edi
mov dword [esi + 0x48], edi
mov ecx, dword [esp + 4]
add eax, ebx
sub ecx, ebx
test ecx, ecx
mov dword [esp + 4], ecx
je 0x4d9df8
mov dword [esp], edi
xor edi, edi
xor ecx, ecx
xor ebx, ebx
nop dword [eax + eax]
mov edx, eax
movzx eax, byte [eax + ebx]
movzx esi, al
test al, al
jns 0x4d9d50
and esi, 0x7f
inc ebx
mov eax, edx
shl esi, cl
add ecx, 7
or edi, esi
cmp dword [esp + 4], ebx
jne 0x4d9d20
xor esi, esi
xor ebx, ebx
jmp 0x4d9d5f
inc ebx
shl esi, cl
cmp ebx, dword [esp + 4]
ja 0x4daca8
or esi, edi
mov ecx, dword [esp + 0x14]
mov eax, esi
and esi, 1
mov edi, dword [esp]
shr eax, 1
neg esi
xor esi, eax
add ecx, esi
cmp dword [esp + 0x10], ecx
mov dword [esp + 0x84], ecx
jbe 0x4da7c7
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov esi, dword [esp + 8]
mov ecx, dword [eax + ecx*4]
mov eax, edx
cmp ecx, edi
jae 0x4d9dbb
cmp ecx, dword [esp + 0x18]
jae 0x4dabc0
mov edi, esi
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
cmp dword [edx + ecx*4], esi
mov esi, edi
mov edi, dword [esp]
je 0x4d9cfb
cmp edi, dword [esp + 0x18]
mov dword [esp + 0x90], edi
jae 0x4dac34
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov dword [ecx + edi*4], edx
mov ecx, dword [esp + 0x84]
cmp ecx, dword [esp + 0x10]
jb 0x4d9cf0
mov edx, dword [esp + 0x10]
push 0x4e75b8
call fcn.004d63d0
xor edi, edi
mov edx, dword [esp + 0x64]
cmp edx, 5
jb 0x4dad1f
add edx, 0xfffffffb
cmp edx, 3
jbe 0x4dacd6
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 8]
lea eax, [esi + 0x98]
lea ebx, [esi + 0x4c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov eax, dword [ecx + 0xd]
shr edx, 8
mov dword [esp], edx
test eax, eax
mov dword [esp + 0x24], eax
movzx eax, dl
mov dword [esp + 0x18], eax
je 0x4da009
mov eax, dword [ebp + 8]
mov ecx, dword [ecx + 9]
test al, 1
jne 0x4d9e66
cmp dl, 0xa
je 0x4d9e6d
cmp dword [esp + 0x18], 0xd
mov esi, ecx
jne 0x4d9e84
cmp byte [esp + 0x20], 0
jne 0x4d9e74
jmp 0x4d9e7f
mov esi, ecx
or esi, 0x2a
jmp 0x4d9e84
cmp byte [esp + 0x20], 0
jne 0x4d9e7f
mov eax, dword [esp + 0x60]
mov esi, ecx
test byte [eax], 8
jne 0x4d9e84
mov esi, ecx
or esi, 0x20
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp]
mov edx, esi
or edx, 8
cmp byte [ecx + 0x158], al
mov ecx, dword [esp + 0x60]
mov eax, dword [ebp + 8]
movzx ebx, byte [ecx]
cmovne edx, esi
test al, 1
cmovne edx, esi
test bl, 8
je 0x4d9ed9
cmp byte [esp + 0x20], 0
je 0x4d9ec8
mov ecx, dword [ebp + 8]
test cl, 1
jne 0x4d9ed6
cmp byte [esp], 0xd
je 0x4d9ee1
jmp 0x4d9ed6
mov ecx, dword [ebp + 8]
test cl, 1
jne 0x4d9ed6
cmp byte [esp], 0xa
je 0x4d9ee1
or edx, 0x10
mov ecx, dword [ebp + 8]
test cl, 1
jne 0x4d9f21
movzx esi, byte [esp]
and bl, 4
mov eax, 0x280
shr bl, 2
mov bh, byte [esi + 0x4e6884]
test bh, bh
setne cl
xor cl, bl
mov ecx, 0x140
cmovne eax, ecx
or eax, edx
mov edx, eax
or edx, 0x28000
test bl, bl
je 0x4d9f53
mov esi, dword [esp + 8]
mov ecx, dword [esp + 4]
test bh, bh
jne 0x4d9f65
jmp 0x4d9f49
shr bl, 2
mov eax, edi
mov esi, 0x28140
mov edi, 0x28280
mov ecx, dword [esp + 4]
test bl, 1
cmovne edi, esi
mov esi, dword [esp + 8]
or edx, edi
mov edi, eax
test bl, 1
mov eax, edx
je 0x4d9f65
or edx, 0x2800
mov eax, edx
jmp 0x4d9f65
mov esi, dword [esp + 8]
mov ecx, dword [esp + 4]
or eax, 0x1400
test bh, bh
cmove eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
not ecx
mov ebx, dword [ebp + 8]
and eax, ecx
test dword [esp + 4], eax
mov eax, dword [esp + 4]
je 0x4da00c
mov edx, dword [esi + 0x38]
cmp edi, edx
ja 0x4dacf6
mov ebx, dword [esi + 0x34]
test edi, edi
je 0x4d9fcf
mov esi, dword [esp + 0x10]
shl edi, 2
nop dword [eax + eax]
mov edx, dword [ebx]
mov ecx, dword [esp + 0x1c]
add ebx, 4
push esi
push dword [esp + 0x18]
push eax
call fcn.0043ae60
mov eax, dword [esp + 0x10]
add esp, 0xc
add edi, 0xfffffffc
jne 0x4d9fa0
mov esi, dword [esp + 8]
mov ebx, dword [esi + 0x34]
mov edx, dword [esi + 0x38]
mov edi, dword [esi + 0x64]
jmp 0x4d9fd1
xor edi, edi
mov eax, dword [esi + 0x30]
movups xmm0, xmmword [esi + 0x4c]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], ebx
mov dword [esi + 0x54], edx
mov eax, dword [esi + 0x44]
movsd xmm1, qword [esi + 0x5c]
movsd xmm2, qword [esi + 0x3c]
movups xmmword [esi + 0x30], xmm0
movsd qword [esi + 0x58], xmm2
movsd qword [esi + 0x40], xmm1
mov dword [esi + 0x60], eax
mov dword [esi + 0x48], edi
mov dword [esi + 0x64], 0
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
sub eax, edx
cmp eax, 8
jbe 0x4da7ad
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1c]
mov dword [eax + edx + 4], 0
mov dword [eax + edx], 0
mov byte [eax + edx + 8], 0
add edx, 9
mov dword [esp + 0x80], edx
mov dword [esp + 0x38], edx
movsd xmm0, qword [esp + 0x78]
movsd qword [esp + 0x30], xmm0
mov eax, dword [ecx + 0x130]
test al, 0x3c
je 0x4da0bd
mov edx, dword [esp]
test bl, 1
jne 0x4da0b7
cmp byte [ecx + 0x158], dl
jne 0x4da0b7
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4dad02
cmp edx, 4
jbe 0x4dacd5
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 1]
mov ebx, ecx
mov edx, ecx
or bl, 4
shr edx, 0x10
mov byte [eax + 1], bl
mov byte [eax + 2], ch
shr ecx, 0x18
mov byte [eax + 3], dl
mov ebx, dword [ebp + 8]
mov edx, dword [esp]
mov byte [eax + 4], cl
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x130]
test al, 0x30
jne 0x4da0c4
jmp 0x4da123
mov edx, dword [esp]
test al, 0x30
je 0x4da123
cmp byte [esp + 0x20], 0
je 0x4da0d7
test bl, 1
jne 0x4da123
cmp dl, 0xd
je 0x4da0e1
jmp 0x4da123
test bl, 1
jne 0x4da123
cmp dl, 0xa
jne 0x4da123
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4dad02
cmp edx, 4
jbe 0x4dacd5
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 1]
mov ebx, ecx
mov edx, ecx
or bl, 0x10
shr edx, 0x10
mov byte [eax + 1], bl
mov byte [eax + 2], ch
shr ecx, 0x18
mov byte [eax + 3], dl
mov ebx, dword [ebp + 8]
mov byte [eax + 4], cl
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x130]
test eax, 0x3ffc0
je 0x4da172
test bl, 1
jne 0x4da13c
movzx eax, byte [esp]
cmp byte [eax + 0x4e6884], 0
jne 0x4da172
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4dad02
cmp edx, 4
jbe 0x4dacd5
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 1]
mov edx, ecx
mov byte [eax + 1], cl
shr ecx, 0x18
or edx, 0x14000
mov byte [eax + 2], dh
shr edx, 0x10
mov byte [eax + 3], dl
mov byte [eax + 4], cl
mov edx, dword [esi + 0x38]
cmp edi, edx
ja 0x4dacf6
test edi, edi
je 0x4da4b3
mov eax, edi
mov edi, dword [esi + 0x34]
lea eax, [edi + eax*4]
mov dword [esp + 4], eax
movzx eax, byte [esp]
mov dword [esp + 0xc], eax
jmp 0x4da1ad
mov eax, dword [esp + 0x1c]
mov ecx, dword [edi]
mov edx, dword [eax + 0x148]
cmp edx, ecx
jbe 0x4da7d5
mov edx, dword [eax + 0x144]
lea ecx, [ecx + ecx*4]
lea eax, [edx + ecx*4]
mov ecx, dword [edx + ecx*4]
mov ecx, dword [ecx*4 + 0x4dae50]
add ecx, dword [esp + 0x70]
jmp ecx
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4dabce
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
test byte [ecx], 2
je 0x4da4f1
lea esi, [edx - 0xd]
mov edi, esi
and edi, 3
mov dword [esp + 0x74], edi
jne 0x4dad51
cmp edx, 0xc
jbe 0x4dad71
shr esi, 2
mov dword [ecx + 9], esi
mov esi, dword [esp + 8]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x48]
mov dword [esp + 0x54], 0
push eax
call fcn.0043b2c0
add esp, 4
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x50]
mov edx, dword [esi + 0x94]
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x10], ecx
lea eax, [eax + eax*2]
lea ecx, [ecx + edx*8 + 0x14]
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 0x88]
add eax, dword [esi + 0xa4]
add ecx, dword [esi + 0x7c]
add eax, dword [esi + 0x68]
add ecx, dword [esi + 0x38]
add ecx, dword [esi + 0x44]
add ecx, dword [esi + 0x54]
add ecx, dword [esi + 0x60]
add ecx, dword [esi + 0x98]
lea ebx, [eax + ecx*4]
mov ecx, dword [edi + 0x27c]
mov eax, 4
and ecx, 0x1f
shl eax, cl
add ebx, eax
mov eax, dword [edi + 0x280]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x70], ebx
cmp ebx, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
jbe 0x4da5fa
mov eax, dword [esp + 0x88]
shr eax, cl
mov ecx, eax
cmp eax, edx
jae 0x4dac00
mov eax, dword [esi + 0x90]
mov ebx, esi
mov dword [esp + 0x18], edi
mov esi, dword [eax + ecx*8]
mov edi, dword [eax + ecx*8 + 4]
lock inc dword [esi]
jle 0x4dad2e
cmp dword [ebx + 0x20], 1
jne 0x4da5db
mov eax, dword [ebx + 0x28]
lock dec dword [eax]
jne 0x4da5db
mov ecx, dword [ebx + 0x28]
mov edx, dword [ebx + 0x2c]
call fcn.00403b00
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x28]
mov dword [ebx + 0x20], 1
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x28], esi
mov dword [ebx + 0x2c], edi
mov edi, dword [esp + 0x18]
mov esi, dword [ecx + 4]
mov edx, edi
mov ebx, edi
mov edi, dword [esp + 0x10]
mov ecx, esi
push edi
call fcn.0043b690
add esp, 4
test eax, eax
je 0x4da658
mov eax, dword [eax]
cmp dword [esi + 0xa4], 0
mov ecx, dword [esp + 0x2c]
mov dword [esp], eax
mov eax, dword [esi + 0xa8]
mov dword [esi + 0xa4], ecx
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xac], 0
je 0x4da64e
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [ebp + 8]
xor edi, edi
jmp 0x4dab25
test edi, edi
mov dword [esp + 0x18], ebx
js 0x4dad80
lea eax, [edi - 0x7ffffff5]
mov ecx, edi
cmp eax, 0x80000002
jbe 0x4dad9e
lea edi, [ecx + 0xb]
mov ebx, 4
mov eax, 4
mov dword [esp + 8], esi
and edi, 0xfffffffc
je 0x4da6c6
movzx eax, byte [0x537170]
mov eax, dword [0x5371d8]
test eax, eax
jne 0x4da6b0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
test eax, eax
je 0x4dade4
mov dword [0x5371d8], eax
push edi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4dade4
lea esi, [ecx + 0x14]
mov dword [eax], 1
mov dword [eax + 4], 1
mov dword [esp + 0x20], eax
add eax, 8
push ecx
push dword [esp + 0x1c]
mov dword [esp + 0xc], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [esp + 8]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x94]
lea ecx, [esi + edx*8]
lea eax, [eax + eax*2]
mov esi, dword [esp + 0x28]
lea eax, [ecx + eax*4]
mov ecx, dword [edi + 0x88]
add eax, dword [edi + 0xa4]
add ecx, dword [edi + 0x7c]
add eax, dword [edi + 0x68]
add ecx, dword [edi + 0x38]
add ecx, dword [edi + 0x44]
add ecx, dword [edi + 0x54]
add ecx, dword [edi + 0x60]
add ecx, dword [edi + 0x98]
mov edi, dword [esi]
lea eax, [eax + ecx*4]
movzx ecx, byte [edi + 0x27c]
mov dword [esp + 0xc], edi
shl ebx, cl
add eax, ebx
cmp eax, dword [edi + 0x280]
jbe 0x4da7fc
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x30], 1
jne 0x4da7f1
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x6c]
cmp eax, dword [ecx + 0x34]
jb 0x4da7f1
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x38], 1
jne 0x4da807
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov eax, dword [eax + 0x3c]
mov esi, dword [edi + 0x70]
cmp dword [edi + 0xb0], 0
je 0x4da7df
mov ecx, dword [edi + 0xb8]
mov edi, dword [edi + 0xb4]
mov ebx, ecx
sub ebx, edi
neg ebx
sub ecx, edi
cmovb ecx, ebx
jmp 0x4da7e1
lea ecx, [esp + 0x78]
push 9
call fcn.004d8ef0
add esp, 4
mov edx, dword [esp + 0x80]
jmp 0x4da022
mov edx, dword [esp + 0x10]
push 0x4e75c8
call fcn.004d63d0
push 0x4e6008
call fcn.004d63d0
xor ecx, ecx
add ecx, esi
mul edx
mov edx, 0xffffffff
cmovno edx, eax
cmp ecx, edx
jb 0x4da807
mov esi, dword [esp + 0x28]
mov ecx, esi
call fcn.00439e30
mov ecx, esi
call fcn.0043a4c0
test eax, eax
je 0x4da825
mov ecx, dword [esp + 0x20]
mov edi, 1
lock dec dword [ecx]
jne 0x4da81e
mov edx, dword [esp + 0x10]
call fcn.00403b00
xor ebx, ebx
jmp 0x4daadb
cmp dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
je 0x4dac0a
mov eax, dword [esp + 4]
mov esi, dword [esp + 8]
mov edi, 1
movzx eax, byte [eax]
mov edx, dword [esi + 0x7c]
and eax, 1
mov dword [esp], eax
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x27c]
mov eax, dword [esi + 0x74]
and ebx, 0x1f
sub eax, edx
mov ecx, ebx
shl edi, cl
cmp eax, edi
jb 0x4dab9c
mov eax, dword [esi + 0x78]
shl dword [esp], 0x1b
cmp ebx, 3
jb 0x4da8a7
movaps xmm0, xmmword [0x4de440]
mov ecx, edi
and edi, 6
lea esi, [eax + edx*4 + 0x10]
and ecx, 0xfffffff8
add edx, ecx
mov ebx, ecx
nop
movups xmmword [esi - 0x10], xmm0
movups xmmword [esi], xmm0
add esi, 0x20
add ebx, 0xfffffff8
jne 0x4da890
mov esi, dword [esp + 8]
test ecx, ecx
jne 0x4da8bf
mov ecx, edx
nop dword [eax]
lea edx, [ecx + 1]
mov dword [eax + ecx*4], 0x80000000
dec edi
mov ecx, edx
jne 0x4da8b0
mov dword [esi + 0x7c], edx
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x264]
mov ebx, dword [esi + 0x258]
mov edx, dword [esi + 0x260]
mov edi, dword [esi + 0x25c]
or dword [esp], eax
or edx, dword [esi + 0x270]
or ebx, dword [esi + 0x268]
or ecx, dword [esi + 0x274]
or edi, dword [esi + 0x26c]
or ebx, edx
or edi, ecx
or edi, ebx
je 0x4daa72
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x27c]
and ecx, 0x1f
cmp ecx, 0x1b
jae 0x4dadf0
mov edx, 2
shl edx, cl
cmp edx, 0x8000000
jae 0x4dae21
mov eax, dword [esp + 0xc]
or edx, 0x20000000
xor esi, esi
mov dword [esp + 0x64], edx
add eax, 0x258
mov dword [esp + 0x1c], eax
cmp esi, 0x101
mov eax, 0x100
cmovae eax, esi
mov dword [esp + 0x24], eax
nop dword [eax]
cmp dword [esp + 0x24], esi
je 0x4daa72
mov eax, esi
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 1
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 4], esi
mov ecx, eax
mov eax, dword [esp + 4]
and al, 7
and cl, 0x78
shr cl, 3
neg cl
movsx ebx, cl
mov ecx, eax
mov esi, dword [esp + ebx + 0xac]
mov edx, dword [esp + ebx + 0xb0]
shld edx, esi, cl
shl esi, cl
not cl
mov dword [esp + 0x14], edx
mov edx, dword [esp + ebx + 0xa8]
mov ebx, dword [esp + ebx + 0xa4]
mov edi, edx
shr edi, 1
shr edi, cl
mov ecx, eax
mov eax, dword [esp + 0x1c]
or edi, esi
mov esi, dword [esp + 4]
shld edx, ebx, cl
shl ebx, cl
mov ecx, dword [esp + 0x14]
shr esi, 3
and esi, 0x10
and edi, dword [eax + esi + 8]
and ebx, dword [eax + esi]
and ecx, dword [eax + esi + 0xc]
and edx, dword [eax + esi + 4]
mov eax, dword [esp + 4]
or ebx, edi
or edx, ecx
lea esi, [eax + 1]
or edx, ebx
je 0x4da960
cmp eax, 0xff
ja 0x4daa72
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
shl eax, 8
movzx eax, ax
push dword [esp + 0x64]
push eax
push dword [esp + 8]
call fcn.0043a590
add esp, 0xc
jmp 0x4da94b
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add dword [esi + 0x68], ecx
lock inc dword [eax]
jle 0x4dad2e
mov edx, dword [esi + 0x94]
cmp edx, dword [esi + 0x8c]
jne 0x4daaad
lea ecx, [esi + 0x8c]
call fcn.0041b2f0
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x94]
mov edi, dword [esp + 0x20]
mov eax, dword [esi + 0x90]
mov dword [eax + edx*8], edi
mov dword [eax + edx*8 + 4], ecx
inc edx
mov eax, ecx
mov ecx, esi
mov dword [esi + 0x94], edx
mov edx, edi
push dword [esp]
push eax
call fcn.0043a680
add esp, 8
xor edi, edi
mov bl, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov esi, dword [eax + 4]
mov eax, dword [esi + 0xa8]
cmp dword [esi + 0xa4], 0
mov dword [esi + 0xa4], ecx
mov dword [esi + 0xa8], edx
mov dword [esi + 0xac], 0
je 0x4dab1e
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
test bl, bl
mov ebx, dword [ebp + 8]
je 0x4dab8f
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x70], eax
jbe 0x4dab64
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x68], ecx
mov ecx, dword [esi + 0x28]
cmp eax, 1
mov dword [esi + 0x20], 0
je 0x4dab6a
cmp eax, 2
je 0x4dab74
mov ecx, str.state_saver_does_not_have_saved_state_ID
mov edx, 0x28
push 0x4e45e4
call fcn.004d67a0
mov eax, dword [esp + 0x28]
jmp 0x4dab7b
lock dec dword [ecx]
jne 0x4dab74
call fcn.00403b00
mov eax, dword [esp + 0x28]
mov esi, dword [eax + 4]
mov ecx, dword [eax]
mov edx, esi
push dword [esp]
push ebx
push dword [esp + 0x70]
call fcn.0043a590
add esp, 0xc
mov edx, dword [esp]
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esi + 0x74]
push edi
call fcn.004d81d0
add esp, 4
mov edx, dword [esi + 0x7c]
mov eax, dword [esi + 0x78]
shl dword [esp], 0x1b
cmp ebx, 3
jae 0x4da877
jmp 0x4da8a7
mov edx, dword [esp + 0x18]
push 0x4e75d8
call fcn.004d63d0
xor ecx, ecx
xor edx, edx
push 0x4e70e8
call fcn.004d63d0
mov ecx, eax
push 0x4e44cc
call fcn.004d63d0
push 0x4e6254
call fcn.004d63d0
xor ecx, ecx
xor edx, edx
push 0x4e7178
call fcn.004d63d0
push 0x4e4724
call fcn.004d63d0
xor ecx, ecx
xor edx, edx
push 0x4e70d8
call fcn.004d63d0
xor ecx, ecx
xor edx, edx
push 0x4e7188
call fcn.004d63d0
xor ecx, ecx
xor edx, edx
push 0x4e7198
call fcn.004d63d0
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x90]
lea ecx, [esp + 0x74]
mov dword [esp + 0x30], 0x4e7590
mov dword [esp + 0x34], 3
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], 0x419060
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x48]
lea edx, [esp + 0x84]
mov dword [esp + 0x54], 0x419060
mov dword [esp + 0x58], edx
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x30]
mov edx, 0x4e75a8
mov dword [esp + 0x5c], 0x42ad00
mov dword [esp + 0x3c], 3
mov dword [esp + 0x74], eax
call fcn.004d6340
mov edx, dword [esp + 4]
mov ecx, ebx
push 0x4e7128
call fcn.004d6370
mov ecx, ebx
push 0x4e71c8
call fcn.004d6370
mov ecx, 4
mov edx, eax
push 0x4e7038
call fcn.004d6430
dec edx
mov ecx, 4
push 0x4e6854
call fcn.004d6430
mov ecx, 1
xor edx, edx
push 0x4e70c8
call fcn.004d6370
mov ecx, edi
push 0x4e63d0
call fcn.004d6430
mov ecx, 1
xor edx, edx
push 0x4e70f8
call fcn.004d6370
mov ecx, eax
push 0x4e7138
call fcn.004d6370
mov ecx, 5
push 0x4e7108
call fcn.004d6370
ud2
mov ecx, 0xd
push 0x4e7168
call fcn.004d6430
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
lea ecx, [esp + 0x74]
mov edx, 0x4e87d4
push 0x4e71b8
push eax
call fcn.004d8270
mov ecx, 0xd
push 0x4e71a8
call fcn.004d6430
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x4e3534
push 0x4e342c
lea eax, [esp + 0x50]
push eax
call fcn.004d6720
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x4e07bc
push 0x4e06d4
lea eax, [esp + 0x50]
push eax
call fcn.004d6720
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srcio_borrowed_buf.rs
mov edx, 0x2b
push 0x4e7148
call fcn.004d6490
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srcio_borrowed_buf.rs
mov edx, 0x2b
push 0x4e7158
call fcn.004d6490
mov ecx, 4
mov edx, edi
call fcn.004d6180
mov eax, 1
mov edx, 0x2b
mov dword [esp + 0x4c], 0
shl eax, cl
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov dword [esp + 0x48], eax
push 0x4e4734
push 0x4e341c
lea eax, [esp + 0x50]
push eax
call fcn.004d6720
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0x8000000
push 0x4e4744
push 0x4e341c
lea eax, [esp + 0x50]
push eax
call fcn.004d6720
nop
add byte [esi], al
add byte [eax], al
jno 0x4dae5c
add byte [eax], al
xor byte [esi], al
add byte [eax], al
ret