Function at 0x49b810
Capabilities:
Inspect section memory permissions

Disassembly:
push 0xffffffffffffffff
push 0x4d9ed8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40
push ebx
push ebp
lea eax, [ecx + 0x41c]
push esi
push edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x64]
xor edi, edi
lea esi, [ecx + 4]
cmp eax, edi
mov dword [esp + 0x14], esi
jne 0x49b858
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push eax
push ecx
mov ecx, esi
call fcn.0049bdc0
jmp 0x49b870
mov eax, dword [esi + 4]
cmp eax, edi
je 0x49b870
mov ecx, dword [esi + 8]
sub ecx, eax
test ecx, 0xfffffffc
je 0x49b870
mov dword [esp + 0x18], esi
mov dl, byte [esp + 0x64]
mov dword [esp + 0x44], edi
mov byte [esp + 0x40], dl
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov al, byte [esp + 0x64]
mov dword [esp + 0x58], edi
mov dword [esp + 0x24], edi
mov byte [esp + 0x30], al
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov ebp, dword [esp + 0x60]
mov byte [esp + 0x58], 1
push ebp
call dword [sym.imp.MSVCRT.dll_wcslen]
push ebp
mov dword [esp + 0x34], eax
call fcn.004afda0
mov ecx, dword [0x4eb4c0]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
add esp, 8
cmp ebp, edi
mov dword [esp + 0x10], ecx
je 0x49b91f
mov edx, ebp
shr edx, 0x10
jne 0x49b8eb
mov eax, ebp
lea ecx, [esp + 0x10]
and eax, 0xffff
push eax
call fcn.00407b70
jmp 0x49b91f
push ebp
call ebx
mov esi, eax
test esi, esi
je 0x49b919
push esi
lea ecx, [esp + 0x14]
call fcn.00407580
test eax, eax
je 0x49b919
mov edi, dword [esp + 0x10]
lea ecx, [esi + esi]
mov eax, ecx
mov esi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x14]
xor edi, edi
cmp ebp, edi
mov byte [esp + 0x58], 2
je 0x49b989
mov edi, dword [sym.imp.MSVCRT.dll_wcschr]
push 0x20
push ebp
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x49b941
mov word [esi], 0
push ebp
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
test eax, eax
je 0x49b978
test ebp, ebp
jne 0x49b957
xor eax, eax
jmp 0x49b95a
push ebp
call ebx
push ebp
push eax
lea ecx, [esp + 0x18]
call fcn.00407780
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x10]
push ecx
push edx
lea ecx, [esp + 0x38]
call fcn.0040fb80
test esi, esi
je 0x49b983
lea ebp, [esi + 2]
test ebp, ebp
jne 0x49b92e
mov esi, dword [esp + 0x14]
xor edi, edi
mov eax, dword [esp + 0x34]
cmp eax, edi
jne 0x49b997
mov dword [esp + 0x60], edi
jmp 0x49b9a4
mov ecx, dword [esp + 0x38]
sub ecx, eax
sar ecx, 2
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
cmp eax, edi
jne 0x49b9b5
mov dword [esp + 0x1c], edi
jmp 0x49b9c1
mov ecx, dword [edx + 8]
sub ecx, eax
sar ecx, 2
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp eax, edi
mov dword [esp + 0x28], ecx
jle 0x49bb89
mov ebp, dword [esp + 0x60]
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
cmp eax, edi
mov dword [esp + 0x64], eax
je 0x49bb78
cmp dword [eax], 0xffffffff
je 0x49bb78
cmp dword [0x6c49c4], 1
jne 0x49ba05
cmp dword [eax + 4], 3
je 0x49bb78
xor ebx, ebx
cmp ebp, edi
mov dword [eax + 0x20], edi
mov dword [esp + 0x20], edi
jle 0x49bb74
mov eax, dword [esp + 0x64]
jmp 0x49ba1e
xor edi, edi
mov ecx, dword [esp + 0x34]
push edi
mov edx, dword [ecx + ebx*4]
lea ecx, [eax + 0x18]
push edx
call fcn.00410b90
mov esi, eax
cmp esi, 0xffffffff
je 0x49bb6a
test ebx, ebx
jne 0x49bacc
mov edx, dword [esp + 0x64]
mov ecx, 0xff
cmp esi, ecx
mov dword [edx + 0x20], ecx
jge 0x49ba54
mov ecx, esi
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x2c]
add edx, esi
mov ebp, dword [eax + 0x20]
sub ebp, ecx
mov dword [eax + 0x20], ebp
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 0x1c]
cmp edx, ecx
jge 0x49bad0
mov edx, dword [esp + 0x34]
lea ebp, [eax + 0x18]
mov edi, dword [edx]
mov edx, dword [ebp]
cmp ecx, dword [edx - 8]
jg 0x49baa2
lea eax, [edx + ecx*2]
push edi
push eax
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
je 0x49ba9e
sub eax, dword [ebp]
sar eax, 1
cmp eax, 0xffffffff
jne 0x49baac
mov eax, dword [esp + 0x64]
mov dword [esp + 0x20], 1
jmp 0x49bab0
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x14]
push eax
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
cmp esi, eax
jge 0x49bacc
mov eax, dword [esp + 0x64]
or dword [eax + 0x20], 0x8000000
mov eax, dword [esp + 0x64]
mov ebp, dword [esp + 0x60]
inc ebx
cmp ebx, ebp
jl 0x49ba1c
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x49baf4
mov ecx, dword [eax + 0x20]
or ecx, 0x20000000
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x64]
cmp dword [eax + 4], 1
jne 0x49bb0a
mov ecx, dword [eax + 0x20]
or ecx, 0x10000000
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
mov edx, dword [eax + 0x20]
shl ecx, 8
add edx, ecx
mov dword [eax + 0x20], edx
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x49bb2a
mov eax, dword [esp + 0x64]
or dword [eax + 0x20], 0x40000000
mov eax, dword [esp + 0x64]
cmp dword [eax + 0x1c], 0xffffffff
jne 0x49bb3d
test dword [eax + 0x20], 0x8000000
je 0x49bb44
or dword [eax + 0x20], 0x80000000
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x64]
push edx
push 1
push eax
lea ecx, [esp + 0x4c]
call fcn.004a69f0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x68]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
je 0x49bbbb
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
xor edi, edi
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x28], ecx
jl 0x49b9d7
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov edx, eax
push 0
sub edx, ecx
push 0x49bda0
and edx, 0xfffffffc
push eax
cmp edx, 0x40
mov edi, eax
mov ebp, ecx
push ecx
jg 0x49bc35
call fcn.0049c000
add esp, 0x10
jmp 0x49bc6e
mov eax, dword [esp + 0x10]
mov edx, dword [0x4eb24c]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x49bbea
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x49bbea
mov edx, dword [esp + 0x10]
lea eax, [edx - 0xc]
push eax
call fcn.004d3765
add esp, 4
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x58], 0
je 0x49bc0f
push 0
mov ecx, esi
call fcn.0049be00
add esi, 4
cmp esi, edi
jne 0x49bbfb
mov esi, dword [esp + 0x34]
push esi
call fcn.004d3765
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x48]
push eax
call fcn.004d3765
add esp, 8
jmp 0x49bd2b
call fcn.0049be90
lea esi, [ebp + 0x40]
push 0
push 0x49bda0
push esi
push ebp
call fcn.0049c000
add esp, 0x20
cmp esi, edi
je 0x49bc6a
mov eax, dword [esi]
push 0x49bda0
push eax
push esi
call fcn.0049bfc0
add esi, 4
add esp, 0xc
cmp esi, edi
jne 0x49bc52
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
mov ecx, dword [esi + 4]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esi + 8]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ecx
mov ecx, dword [0x4eb24c]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x49bcc7
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x49bcc7
mov eax, dword [esp + 0x10]
add eax, 0xfffffff4
push eax
call fcn.004d3765
add esp, 4
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x58], 0
je 0x49bcec
push 0
mov ecx, esi
call fcn.0049be00
add esi, 4
cmp esi, edi
jne 0x49bcd8
mov esi, dword [esp + 0x34]
push esi
call fcn.004d3765
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
add esp, 4
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
push ecx
push edx
lea ecx, [esp + 0x48]
mov dword [esp + 0x44], eax
mov dword [esp + 0x60], 0xffffffff
call fcn.004bb6c0
mov eax, dword [esp + 0x44]
push eax
call fcn.004d3765
add esp, 4
mov ecx, dword [esp + 0x50]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x4c
ret 0xc