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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov edx, dword [ecx + 4]
mov eax, dword [ecx + 8]
lea ebx, [esp + 0x50]
mov dword [esp + 0x24], ecx
mov ecx, ebx
mov dword [esp + 4], edx
push 9
push 0x6278f7
mov dword [esp + 8], eax
push eax
call fcn.004208d0
add esp, 0xc
cmp dword [ebx], 0
je 0x4f9b1a
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x8c]
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x74]
mov eax, ecx
mov edx, edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], esi
sub eax, edi
not edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x38], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1c], eax
lea eax, [esi + edx]
mov edx, esi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
cmp ecx, eax
mov esi, eax
mov dword [esp + 0x1c], eax
cmovb esi, ecx
cmp ebx, 0xffffffff
cmove esi, ecx
cmove eax, edi
mov dword [esp + 0x48], eax
lea eax, [esi - 1]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x4c], eax
mov eax, esi
sub eax, edi
cmp eax, dword [esp + 8]
jae 0x4f9cbf
mov cl, byte [edx + eax]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], esi
xor eax, eax
xor esi, esi
inc esi
shld eax, esi, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
and eax, dword [esp + 0x3c]
and esi, dword [esp + 0x40]
or esi, eax
je 0x4f9af8
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov edx, edi
lea ebx, [esi + ecx]
mov esi, dword [esp + 0x44]
lea edi, [eax + ecx]
mov ecx, esi
sub ecx, 1
jb 0x4f9a99
cmp dword [esp + 0x4c], edx
jae 0x4f9dbd
lea eax, [edi + esi]
cmp eax, dword [esp + 8]
jae 0x4f9dc7
mov eax, dword [esp + 0x18]
mov al, byte [eax + esi - 1]
cmp al, byte [ebx + esi]
mov esi, ecx
je 0x4f9a4f
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
mov edi, edx
mov edx, dword [esp + 0x2c]
sub esi, dword [esp + 0x10]
add esi, ecx
cmp ebx, 0xffffffff
je 0x4f99f4
jmp 0x4f9b0b
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edi, edx
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x2c]
add ecx, eax
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x48]
jae 0x4f9c02
cmp eax, edi
jae 0x4f9dd7
cmp ecx, dword [esp + 8]
jae 0x4f9dec
mov ebx, dword [esp + 0x18]
mov bl, byte [ebx + eax]
inc eax
cmp bl, byte [edx + ecx]
lea ecx, [ecx + 1]
je 0x4f9ab1
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
sub esi, dword [esp + 0x20]
cmp ebx, 0xffffffff
je 0x4f99f4
mov eax, dword [esp + 0x20]
jmp 0x4f9b0d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
cmp ebx, 0xffffffff
cmovne eax, edi
jmp 0x4f99cd
mov eax, edi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xc], esi
jmp 0x4f99cd
mov al, byte [esp + 0x5e]
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov bh, byte [esp + 0x5d]
mov esi, dword [esp + 0x58]
mov byte [esp + 8], al
cmp byte [esp + 8], 0
jne 0x4f9cbf
test esi, esi
je 0x4f9bf8
cmp esi, edx
jae 0x4f9b5a
cmp byte [edi + esi], 0xbf
jg 0x4f9b60
jmp 0x4f9dfa
jne 0x4f9dfa
mov bl, byte [edi + esi - 1]
test bl, bl
js 0x4f9b6d
movzx ecx, bl
jmp 0x4f9bb9
movzx eax, byte [edi + esi - 2]
cmp al, 0xc0
jge 0x4f9b9e
movzx ecx, byte [edi + esi - 3]
cmp cl, 0xc0
jge 0x4f9ba3
mov dword [esp + 0x18], edx
mov edx, esi
movzx esi, byte [edi + esi - 4]
and ecx, 0x3f
and esi, 7
shl esi, 6
or ecx, esi
mov esi, edx
mov edx, dword [esp + 0x18]
jmp 0x4f9ba6
and eax, 0x1f
jmp 0x4f9bae
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
and bl, 0x3f
shl eax, 6
movzx ecx, bl
or ecx, eax
test bh, bh
jne 0x4f9c02
cmp ecx, 0x110000
je 0x4f9cbf
cmp ecx, 0x80
mov eax, 0xffffffff
jb 0x4f9bef
cmp ecx, 0x800
push 0xfffffffffffffffe
pop eax
jb 0x4f9bef
xor eax, eax
cmp ecx, 0x10000
setb al
or eax, 0xfffffffc
add esi, eax
mov bh, 1
jmp 0x4f9b38
xor esi, esi
test bh, bh
je 0x4f9cbf
mov dword [esp + 0xc], esi
add esi, 9
mov edi, esi
mov edx, dword [esp]
mov ecx, dword [esp + 4]
push 0x6279cc
push edi
call fcn.0043e395
pop ecx
pop ecx
test edx, edx
je 0x4f9c2e
mov al, byte [eax]
add al, 0xd0
cmp al, 0xa
jae 0x4f9c2e
inc edi
jmp 0x4f9c0b
mov ecx, dword [esp + 4]
mov edx, dword [esp]
push 0x6279dc
push edi
call fcn.0043e395
pop ecx
pop ecx
mov ecx, eax
push 8
push 0x627900
call fcn.004f83b2
pop ecx
pop edx
xor ebx, ebx
test al, al
je 0x4f9cc1
lea ebx, [edi + 8]
mov dword [esp + 8], ebx
mov edx, dword [esp]
mov ecx, dword [esp + 4]
push 0x6279ec
push ebx
call fcn.0043e395
pop ecx
pop ecx
test edx, edx
je 0x4f9c82
mov al, byte [eax]
add al, 0xd0
cmp al, 0xa
jae 0x4f9c82
inc ebx
jmp 0x4f9c5f
mov edx, dword [esp]
cmp ebx, edx
jb 0x4f9cb9
mov ecx, dword [esp + 4]
push 0x6279fc
push edi
push esi
call fcn.004f9e1b
add esp, 0xc
mov esi, edx
lea edi, [esp + 0x50]
mov edx, eax
mov ecx, edi
push esi
call fcn.00421dd0
pop eax
cmp byte [edi], 0
je 0x4f9d48
mov edx, dword [esp]
xor esi, esi
xor ebx, ebx
jmp 0x4f9cc6
xor ebx, ebx
mov edx, dword [esp]
xor esi, esi
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
cmp eax, edx
jbe 0x4f9cf9
mov dword [esp + 8], esi
mov esi, ebx
test edx, edx
mov ebx, edx
je 0x4f9cfd
mov ecx, dword [esp + 4]
mov edi, ebx
mov edx, eax
push ebx
push 1
call fcn.004074a0
pop ecx
pop edx
mov ebx, eax
test eax, eax
jne 0x4f9d0f
xor ecx, ecx
inc ecx
jmp 0x4f9d18
mov edi, edx
jmp 0x4f9d25
mov ecx, dword [esp + 4]
mov edi, ebx
xor ebx, ebx
inc ebx
mov edx, ebx
push eax
call fcn.00402e79
pop eax
mov ecx, 0x80000001
mov dword [esp + 4], ebx
mov edx, edi
mov ebx, esi
call fcn.00402d89
mov esi, dword [esp + 8]
push 0x14
pop ecx
call fcn.004f7740
mov ecx, dword [esp + 4]
and dword [eax], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0x50]
mov edi, dword [esp]
mov ecx, dword [esp + 4]
mov esi, dword [eax + 4]
mov edx, edi
push 0x627a0c
push ebx
push dword [esp + 0x10]
call fcn.004f9e1b
add esp, 0xc
mov ebx, edx
lea ecx, [esp + 0x50]
mov edx, eax
push ebx
call fcn.00421dd0
pop eax
lea eax, [esp + 0x50]
cmp byte [eax], 0
je 0x4f9d8b
xor esi, esi
mov edx, edi
jmp 0x4f9cbb
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x54]
mov edx, edi
cmp edi, ecx
jb 0x4f9cc6
test ecx, ecx
je 0x4f9daf
cmp edx, ecx
jbe 0x4f9daf
mov eax, dword [esp + 4]
cmp byte [eax + ecx], 0xbf
jle 0x4f9e09
mov eax, dword [esp + 0x24]
mov edx, ecx
mov dword [eax + 8], ecx
jmp 0x4f9cc6
push 0x626960
call fcn.0059ee70
mov edx, dword [esp + 8]
mov ecx, eax
push 0x626970
call fcn.0059ee70
mov ecx, dword [esp + 0x10]
mov edx, edi
cmp ecx, edi
cmovbe ecx, edi
push 0x626940
call fcn.0059ee70
mov edx, dword [esp + 8]
push 0x626950
call fcn.0059ee70
mov ecx, edi
push 0x626c94
push esi
push 0
call fcn.0059f3b0
push 0x30
pop edx
mov ecx, str.assertion_failed:_self.is_char_boundary_new_len_
push 0x64ffdc
call fcn.0059ef30