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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
mov eax, dword [0x570400]
xor eax, esp
mov dword [esp + 0xa0], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [esp + 0x18], edx
mov edi, ecx
mov dword [esp + 0x28], esi
mov al, byte [esi]
test al, al
jne 0x4d6b6b
cmp byte [edi + 0x27], al
je 0x4d6b4c
mov edx, dword [edi + 0x2c]
call fcn.004d3800
test eax, eax
je 0x4d6b4c
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x20]
push eax
mov edx, esi
mov ecx, edi
call fcn.004d50f0
mov ebx, dword [esp + 0x24]
mov ecx, eax
mov al, byte [edi + 0x27]
add esp, 4
add ebx, ecx
cmp al, 1
jne 0x4d6ab7
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x4d6a36
mov eax, esi
mov dword [esp + 0x18], ecx
sub eax, ecx
add ebx, eax
xor ecx, ecx
mov esi, ebx
neg esi
mov eax, esi
adc ecx, ecx
neg ecx
or eax, ecx
je 0x4d6b4c
mov edx, dword [edi + 4]
xor eax, eax
add edx, esi
adc eax, ecx
test eax, eax
jl 0x4d6a75
jg 0x4d6a5e
cmp edx, dword [edi + 8]
jbe 0x4d6a75
mov edx, dword [edi + 4]
mov ecx, edi
lea edx, [esi + edx]
call fcn.004d3760
cmp byte [edi + 0x23], 0
jne 0x4d6b4c
mov ecx, dword [edi]
mov eax, dword [edi + 4]
add ecx, dword [esp + 0x18]
sub eax, dword [esp + 0x18]
sub eax, ebx
push eax
lea eax, [ebx + ecx]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp + 0xc]
add esp, 0xc
add dword [edi + 4], esi
add dword [edi + 0x28], esi
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
cmp al, 3
je 0x4d6b4c
mov ecx, dword [edi + 0x2c]
xor edx, edx
mov eax, dword [edi + 0x34]
mov esi, ecx
sub esi, ebx
mov dword [esp + 0x14], eax
mov eax, esi
mov dword [esp + 0x1c], ecx
sbb edx, edx
or eax, edx
je 0x4d6b2f
mov ecx, dword [edi + 4]
xor eax, eax
add ecx, esi
adc eax, edx
test eax, eax
jl 0x4d6b02
jg 0x4d6aef
cmp ecx, dword [edi + 8]
jbe 0x4d6b02
mov edx, dword [edi + 4]
mov ecx, edi
lea edx, [edx + esi]
call fcn.004d3760
cmp byte [edi + 0x23], 0
jne 0x4d6b4c
mov ecx, dword [edi]
mov eax, dword [edi + 4]
add ecx, dword [esp + 0x18]
sub eax, ebx
sub eax, dword [esp + 0x18]
push eax
lea eax, [ebx + ecx]
push eax
mov eax, dword [esp + 0x24]
add eax, ecx
push eax
call sub.VCRUNTIME140.dll_memmove
add dword [edi + 4], esi
add esp, 0xc
add dword [edi + 0x28], esi
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4d6b4c
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4d6b4c
push ecx
mov ecx, dword [edi]
add ecx, dword [esp + 0x1c]
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
cmp al, 0x2e
jne 0x4d7018
mov eax, dword [edi]
inc esi
mov ecx, edx
mov dword [esp + 0x38], 1
mov dword [esp + 0x28], esi
mov dl, byte [ecx + eax]
mov al, byte [esi]
mov byte [esp + 0x13], dl
cmp al, 0x22
jne 0x4d6be4
mov al, byte [esi + 1]
lea ecx, [esi + 1]
mov dword [esp + 0x1c], ecx
mov ebx, 1
test al, al
je 0x4d6bb1
cmp al, 0x22
je 0x4d6bb1
mov al, byte [esi + ebx + 1]
inc ebx
test al, al
jne 0x4d6ba4
cmp byte [esi + ebx], 0
lea eax, [ebx - 1]
mov dword [esp + 0x24], eax
je 0x4d72b4
push eax
push 0x5c
push ecx
inc ebx
call sub.VCRUNTIME140.dll_memchr
mov dl, byte [esp + 0x1f]
xor ecx, ecx
add esp, 0xc
test eax, eax
sete cl
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x18]
jmp 0x4d6c0d
xor ebx, ebx
mov dword [esp + 0x1c], esi
test al, al
je 0x4d6c01
nop
cmp al, 0x2e
je 0x4d6c01
cmp al, 0x5b
je 0x4d6c01
mov al, byte [esi + ebx + 1]
inc ebx
test al, al
jne 0x4d6bf0
mov dword [esp + 0x24], ebx
test ebx, ebx
je 0x4d72b4
and dl, 0xf
cmp dl, 0xc
jne 0x4d729a
lea eax, [esp + 0x20]
mov edx, ecx
push eax
mov ecx, edi
call fcn.004d50f0
mov esi, eax
add esp, 4
add esi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
add eax, esi
mov dword [esp + 0x34], eax
cmp esi, eax
jae 0x4d6d06
mov eax, dword [edi]
mov al, byte [eax + esi]
and al, 0xf
mov byte [esp + 0x13], al
sub al, 7
cmp al, 3
ja 0x4d714c
lea eax, [esp + 0x20]
mov edx, esi
push eax
mov ecx, edi
call fcn.004d50f0
add esp, 4
test eax, eax
je 0x4d714c
mov edx, dword [esp + 0x20]
lea ecx, [esi + eax]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
lea eax, [ecx + edx]
cmp eax, dword [esp + 0x34]
jae 0x4d714c
mov al, byte [esp + 0x13]
add ecx, dword [edi]
cmp al, 7
je 0x4d6c9e
cmp al, 0xa
je 0x4d6c9e
xor eax, eax
jmp 0x4d6ca3
mov eax, 1
push eax
push edx
mov edx, dword [esp + 0x2c]
push ecx
push dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
call fcn.004d68a0
add esp, 0x10
test eax, eax
mov eax, dword [edi]
jne 0x4d6f53
mov esi, dword [esp + 0x2c]
add esi, dword [esp + 0x30]
mov al, byte [eax + esi]
and al, 0xf
cmp al, 0xc
ja 0x4d714c
lea eax, [esp + 0x20]
mov edx, esi
push eax
mov ecx, edi
call fcn.004d50f0
add esp, 4
test eax, eax
je 0x4d714c
add eax, dword [esp + 0x20]
add esi, eax
mov eax, dword [esp + 0x34]
cmp esi, eax
jb 0x4d6c42
cmp esi, eax
ja 0x4d714c
cmp byte [edi + 0x27], 3
jb 0x4d729a
push 0x38
lea eax, [esp + 0x78]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [edi + 0x10]
lea ecx, [esp + 0x80]
add esp, 0xc
mov dword [esp + 0x84], eax
cmp dword [esp + 0x38], 0
setne dl
push 0
push dword [esp + 0x28]
add dl, 9
call fcn.004d38e0
mov al, byte [edi + 0x23]
lea edx, [esp + 0x44]
or al, byte [esp + 0x9f]
mov ecx, edi
mov byte [edi + 0x23], al
mov eax, dword [esp + 0x30]
add eax, ebx
push eax
call fcn.004d6930
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x28], ebx
cmp ebx, 0xfffffffd
jae 0x4d6e92
mov edx, dword [esp + 0x78]
mov ecx, edi
add edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x24]
add edx, ebx
call fcn.004d3800
test eax, eax
je 0x4d6e8e
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x78]
add ebx, eax
mov eax, ebx
or eax, 0
je 0x4d6df8
mov edx, dword [edi + 4]
xor eax, eax
mov ecx, edx
add ecx, ebx
adc eax, eax
test eax, eax
jb 0x4d6dd6
ja 0x4d6dc3
cmp ecx, dword [edi + 8]
jbe 0x4d6dd6
add edx, ebx
mov ecx, edi
call fcn.004d3760
cmp byte [edi + 0x23], 0
jne 0x4d6e8e
mov ecx, dword [edi]
mov eax, dword [edi + 4]
sub eax, esi
push eax
lea eax, [ecx + esi]
push eax
lea eax, [ebx + ecx]
add eax, esi
push eax
call sub.VCRUNTIME140.dll_memmove
mov eax, ebx
add esp, 0xc
add dword [edi + 4], eax
add dword [edi + 0x28], eax
cmp byte [edi + 0x23], 0
jne 0x4d6e8e
push dword [esp + 0x78]
mov eax, dword [edi]
push dword [esp + 0x78]
add eax, esi
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ebx, dword [esp + 0x30]
add esp, 0xc
add esi, dword [esp + 0x78]
mov eax, dword [edi]
add eax, esi
push ebx
push dword [esp + 0x20]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [edi]
add esp, 0xc
add eax, esi
add eax, ebx
push dword [esp + 0x40]
push dword [esp + 0x40]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp dword [edi + 0x28], 0
je 0x4d6e8e
mov eax, dword [edi + 8]
mov ecx, edi
mov esi, dword [edi + 4]
mov edx, dword [esp + 0x18]
mov dword [edi + 4], eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], 0
call fcn.004d50f0
mov eax, dword [esp + 0x18]
add esp, 4
add eax, dword [edi + 0x28]
mov ecx, edi
mov edx, dword [esp + 0x18]
mov dword [edi + 4], esi
push eax
call fcn.004d39b0
add esp, 4
add dword [edi + 0x28], eax
mov ebx, dword [esp + 0x28]
cmp byte [esp + 0x60], 0
je 0x4d6eba
push dword [esp + 0x48]
call fcn.0041b8f0
add esp, 4
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], 0
mov byte [esp + 0x60], 0
cmp dword [esp + 0x44], 0
je 0x4d6eea
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x4d6ed2
mov ecx, dword [esp + 0x4c]
call fcn.00418c30
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
cmp byte [esp + 0x98], 0
je 0x4d6f21
push dword [esp + 0x80]
call fcn.0041b8f0
add esp, 4
mov dword [esp + 0x80], 0
mov dword [esp + 0x88], 0
mov byte [esp + 0x98], 0
cmp dword [esp + 0x7c], 0
je 0x4d6f3c
mov edx, dword [esp + 0x74]
test edx, edx
je 0x4d6f3c
mov ecx, dword [esp + 0x84]
call fcn.00418c30
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x2c]
add ecx, dword [esp + 0x30]
mov al, byte [ecx + eax]
and al, 0xf
cmp al, 0xc
ja 0x4d714c
lea eax, [esp + 0x20]
mov edx, ecx
push eax
mov ecx, edi
call fcn.004d50f0
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4d714c
mov edx, dword [esp + 0x2c]
add edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
add ecx, edx
add ecx, eax
cmp ecx, dword [esp + 0x34]
ja 0x4d714c
mov eax, dword [esp + 0x28]
push esi
add eax, ebx
push eax
mov ecx, edi
call fcn.004d69b0
add esp, 8
mov dword [esp + 0x1c], eax
cmp dword [edi + 0x28], 0
je 0x4d72b9
mov eax, dword [edi + 8]
mov ecx, edi
mov esi, dword [edi + 4]
mov edx, dword [esp + 0x18]
mov dword [edi + 4], eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], 0
call fcn.004d50f0
mov eax, dword [esp + 0x18]
add esp, 4
add eax, dword [edi + 0x28]
mov ecx, edi
mov edx, dword [esp + 0x18]
mov dword [edi + 4], esi
push eax
call fcn.004d39b0
add esp, 4
add dword [edi + 0x28], eax
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
cmp al, 0x5b
jne 0x4d72b4
mov eax, dword [edi]
mov ecx, edx
mov al, byte [ecx + eax]
and al, 0xf
cmp al, 0xb
jne 0x4d729a
lea eax, [esp + 0x20]
mov ecx, edi
push eax
call fcn.004d50f0
mov dword [esp + 0x20], eax
xor ebx, ebx
mov al, byte [esi + 1]
add esp, 4
movzx ecx, al
lea edx, [ebx + 1]
test byte [ecx + 0x55b5b8], 4
je 0x4d708d
jmp 0x4d7062
mov al, cl
mov cl, byte [esi + edx + 1]
lea ebx, [ebx + ebx*4]
inc edx
movsx eax, al
lea ebx, [ebx - 0x18]
lea ebx, [eax + ebx*2]
movzx eax, cl
test byte [eax + 0x55b5b8], 4
jne 0x4d7060
mov dword [esp + 0x24], edx
cmp edx, 2
jb 0x4d708d
cmp cl, 0x5d
je 0x4d7109
cmp byte [esi + 1], 0x23
jne 0x4d72b4
mov edx, dword [esp + 0x18]
mov ecx, edi
call fcn.004d6370
cmp byte [esi + 2], 0x2d
mov ebx, eax
mov edx, 2
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], edx
jne 0x4d70ff
mov al, byte [esi + 3]
movzx ecx, al
test byte [ecx + 0x55b5b8], 4
je 0x4d70ff
xor ecx, ecx
mov bl, al
lea edx, [ecx + 3]
nop dword [eax]
movsx eax, bl
lea ecx, [ecx + ecx*4]
mov bl, byte [esi + edx + 1]
lea ecx, [ecx - 0x18]
inc edx
lea ecx, [eax + ecx*2]
movzx eax, bl
test byte [eax + 0x55b5b8], 4
jne 0x4d70d0
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x24], edx
cmp ecx, ebx
ja 0x4d729a
sub ebx, ecx
cmp byte [esi + edx], 0x5d
jne 0x4d72b4
mov esi, dword [esp + 0x18]
add esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
add eax, esi
mov dword [esp + 0x14], eax
cmp esi, eax
jae 0x4d714a
nop
mov edx, esi
test ebx, ebx
je 0x4d7164
lea eax, [esp + 0x20]
mov ecx, edi
push eax
dec ebx
call fcn.004d50f0
add esp, 4
test eax, eax
je 0x4d714c
add eax, dword [esp + 0x20]
add esi, eax
mov eax, dword [esp + 0x14]
cmp esi, eax
jb 0x4d7120
cmp esi, eax
jbe 0x4d7176
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
inc ecx
push 0
add eax, ecx
jmp 0x4d6fa6
test ebx, ebx
jne 0x4d729a
cmp byte [edi + 0x27], 3
jb 0x4d729a
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x3c]
mov eax, dword [esp + 0x28]
inc ecx
add eax, ecx
mov ecx, edi
push eax
call fcn.004d6930
add esp, 4
mov dword [esp + 0x1c], eax
cmp eax, 0xfffffffd
jae 0x4d7233
mov edx, dword [esp + 0x40]
mov ecx, edi
call fcn.004d3800
test eax, eax
je 0x4d7233
mov ebx, dword [esp + 0x40]
mov eax, ebx
or eax, 0
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], ecx
je 0x4d721c
mov edx, dword [edi + 4]
xor eax, eax
mov ecx, edx
add ecx, ebx
adc eax, eax
test eax, eax
jb 0x4d71f6
ja 0x4d71e7
cmp ecx, dword [edi + 8]
jbe 0x4d71f6
add edx, ebx
mov ecx, edi
call fcn.004d3760
cmp byte [edi + 0x23], 0
jne 0x4d7233
mov ecx, dword [edi]
mov eax, dword [edi + 4]
sub eax, esi
push eax
lea eax, [ecx + esi]
push eax
lea eax, [ebx + ecx]
add eax, esi
push eax
call sub.VCRUNTIME140.dll_memmove
mov ecx, dword [esp + 0x20]
mov eax, ebx
add dword [edi + 4], eax
add esp, 0xc
add dword [edi + 0x28], eax
test ebx, ebx
je 0x4d7233
test ecx, ecx
je 0x4d7233
mov eax, dword [edi]
push ebx
push ecx
add eax, esi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp byte [esp + 0x60], 0
je 0x4d725b
push dword [esp + 0x48]
call fcn.0041b8f0
add esp, 4
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], 0
mov byte [esp + 0x60], 0
cmp dword [esp + 0x44], 0
je 0x4d728b
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x4d7273
mov ecx, dword [esp + 0x4c]
call fcn.00418c30
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
cmp dword [edi + 0x28], 0
je 0x4d6fff
jmp 0x4d6fbf
mov eax, 0xfffffffe
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffd
mov ecx, dword [esp + 0xac]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret