Function at 0x49cc40
Capabilities:
Inspect section memory permissions

Disassembly:
push 0xffffffffffffffff
push 0x4db478
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 0x49cc88
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push eax
push ecx
mov ecx, esi
call fcn.0049d1f0
jmp 0x49cca0
mov eax, dword [esi + 4]
cmp eax, edi
je 0x49cca0
mov ecx, dword [esi + 8]
sub ecx, eax
test ecx, 0xfffffffc
je 0x49cca0
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.004b10f0
mov ecx, dword [0x4ed0fc]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
add esp, 8
cmp ebp, edi
mov dword [esp + 0x10], ecx
je 0x49cd4f
mov edx, ebp
shr edx, 0x10
jne 0x49cd1b
mov eax, ebp
lea ecx, [esp + 0x10]
and eax, 0xffff
push eax
call fcn.00406b70
jmp 0x49cd4f
push ebp
call ebx
mov esi, eax
test esi, esi
je 0x49cd49
push esi
lea ecx, [esp + 0x14]
call fcn.00406580
test eax, eax
je 0x49cd49
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 0x49cdb9
mov edi, dword [sym.imp.MSVCRT.dll_wcschr]
push 0x20
push ebp
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x49cd71
mov word [esi], 0
push ebp
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
test eax, eax
je 0x49cda8
test ebp, ebp
jne 0x49cd87
xor eax, eax
jmp 0x49cd8a
push ebp
call ebx
push ebp
push eax
lea ecx, [esp + 0x18]
call fcn.00406780
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x10]
push ecx
push edx
lea ecx, [esp + 0x38]
call fcn.0040ecd0
test esi, esi
je 0x49cdb3
lea ebp, [esi + 2]
test ebp, ebp
jne 0x49cd5e
mov esi, dword [esp + 0x14]
xor edi, edi
mov eax, dword [esp + 0x34]
cmp eax, edi
jne 0x49cdc7
mov dword [esp + 0x60], edi
jmp 0x49cdd4
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 0x49cde5
mov dword [esp + 0x1c], edi
jmp 0x49cdf1
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 0x49cfb9
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 0x49cfa8
cmp dword [eax], 0xffffffff
je 0x49cfa8
cmp dword [0x72795c], 1
jne 0x49ce35
cmp dword [eax + 4], 3
je 0x49cfa8
xor ebx, ebx
cmp ebp, edi
mov dword [eax + 0x20], edi
mov dword [esp + 0x20], edi
jle 0x49cfa4
mov eax, dword [esp + 0x64]
jmp 0x49ce4e
xor edi, edi
mov ecx, dword [esp + 0x34]
push edi
mov edx, dword [ecx + ebx*4]
lea ecx, [eax + 0x18]
push edx
call fcn.0040fd70
mov esi, eax
cmp esi, 0xffffffff
je 0x49cf9a
test ebx, ebx
jne 0x49cefc
mov edx, dword [esp + 0x64]
mov ecx, 0xff
cmp esi, ecx
mov dword [edx + 0x20], ecx
jge 0x49ce84
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 0x49cf00
mov edx, dword [esp + 0x34]
lea ebp, [eax + 0x18]
mov edi, dword [edx]
mov edx, dword [ebp]
cmp ecx, dword [edx - 8]
jg 0x49ced2
lea eax, [edx + ecx*2]
push edi
push eax
call dword [sym.imp.MSVCRT.dll_wcsstr]
add esp, 8
test eax, eax
je 0x49cece
sub eax, dword [ebp]
sar eax, 1
cmp eax, 0xffffffff
jne 0x49cedc
mov eax, dword [esp + 0x64]
mov dword [esp + 0x20], 1
jmp 0x49cee0
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 0x49cefc
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 0x49ce4c
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x49cf24
mov ecx, dword [eax + 0x20]
or ecx, 0x20000000
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x64]
cmp dword [eax + 4], 1
jne 0x49cf3a
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 0x49cf5a
mov eax, dword [esp + 0x64]
or dword [eax + 0x20], 0x40000000
mov eax, dword [esp + 0x64]
cmp dword [eax + 0x1c], 0xffffffff
jne 0x49cf6d
test dword [eax + 0x20], 0x8000000
je 0x49cf74
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.00470320
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x68]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
je 0x49cfeb
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 0x49ce07
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov edx, eax
push 0
sub edx, ecx
push 0x49d1d0
and edx, 0xfffffffc
push eax
cmp edx, 0x40
mov edi, eax
mov ebp, ecx
push ecx
jg 0x49d065
call fcn.0049d430
add esp, 0x10
jmp 0x49d09e
mov eax, dword [esp + 0x10]
mov edx, dword [0x4ed100]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x49d01a
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x49d01a
mov edx, dword [esp + 0x10]
lea eax, [edx - 0xc]
push eax
call fcn.004d4cc1
add esp, 4
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x58], 0
je 0x49d03f
push 0
mov ecx, esi
call fcn.0049d230
add esi, 4
cmp esi, edi
jne 0x49d02b
mov esi, dword [esp + 0x34]
push esi
call fcn.004d4cc1
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.004d4cc1
add esp, 8
jmp 0x49d15b
call fcn.0049d2c0
lea esi, [ebp + 0x40]
push 0
push 0x49d1d0
push esi
push ebp
call fcn.0049d430
add esp, 0x20
cmp esi, edi
je 0x49d09a
mov eax, dword [esi]
push 0x49d1d0
push eax
push esi
call fcn.0049d3f0
add esi, 4
add esp, 0xc
cmp esi, edi
jne 0x49d082
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 [0x4ed100]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x49d0f7
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x49d0f7
mov eax, dword [esp + 0x10]
add eax, 0xfffffff4
push eax
call fcn.004d4cc1
add esp, 4
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x58], 0
je 0x49d11c
push 0
mov ecx, esi
call fcn.0049d230
add esi, 4
cmp esi, edi
jne 0x49d108
mov esi, dword [esp + 0x34]
push esi
call fcn.004d4cc1
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.004ac350
mov eax, dword [esp + 0x44]
push eax
call fcn.004d4cc1
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