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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov edx, dword [ecx]
mov eax, dword [ecx + 8]
lea esi, [esp + 0x48]
mov dword [esp + 0x14], ecx
mov ecx, esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], edx
push 9
push 0xa09ed2
push eax
call fcn.00448170
add esp, 0xc
cmp dword [esi], 0
je 0x5d9929
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x84]
mov esi, edx
mov dword [esp + 0x2c], ecx
sub ecx, eax
mov dword [esp + 0x28], edx
sub edx, eax
mov dword [esp + 4], eax
neg esi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], edx
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x20], ecx
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov edx, ecx
mov eax, edx
sub edx, dword [esp + 4]
cmp edx, dword [esp + 8]
jae 0x5d9aed
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
xor esi, esi
xor edi, edi
inc edi
mov cl, byte [eax + edx]
mov eax, 0
shld esi, edi, cl
shl edi, cl
test cl, 0x20
cmovne esi, edi
cmovne edi, eax
and esi, dword [esp + 0x40]
and edi, dword [esp + 0x44]
or edi, esi
je 0x5d97f8
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
cmp eax, edi
lea esi, [esi + ecx]
cmovb edi, eax
cmp dword [esp + 0x20], 0xffffffff
cmove edi, eax
dec edi
mov ecx, edi
cmp ecx, 0xffffffff
je 0x5d9809
cmp edi, dword [esp + 4]
jae 0x5d9b72
lea ebx, [edx + ecx]
mov eax, edx
cmp ebx, dword [esp + 8]
jae 0x5d9b7d
mov eax, dword [esp + 0x10]
lea ebx, [ecx - 1]
mov al, byte [eax + ecx]
cmp al, byte [esi + ecx]
mov ecx, ebx
je 0x5d97a7
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov eax, ecx
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x20], 0xffffffff
lea edx, [eax + ebx + 1]
je 0x5d9745
jmp 0x5d987b
cmp dword [esp + 0x20], 0xffffffff
mov esi, dword [esp + 0x18]
je 0x5d9745
jmp 0x5d9877
cmp dword [esp + 0x20], 0xffffffff
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
cmove edi, dword [esp + 4]
add ecx, eax
cmp esi, edi
jae 0x5d9890
cmp esi, dword [esp + 4]
jae 0x5d9b94
cmp ecx, dword [esp + 8]
jae 0x5d9ba8
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x2c]
mov al, byte [eax + esi]
inc esi
cmp al, byte [ebx + ecx]
lea ecx, [ecx + 1]
je 0x5d9825
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
sub ecx, dword [esp + 0x30]
cmp dword [esp + 0x20], 0xffffffff
mov edx, ecx
je 0x5d9745
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
jmp 0x5d9743
mov ecx, edx
jmp 0x5d9883
add ecx, dword [esp + 0x34]
lea ecx, [ebx + ecx + 1]
mov eax, dword [esp + 4]
mov dword [esp + 0x1c], eax
jmp 0x5d9743
mov esi, dword [esp + 0x18]
mov eax, edx
mov edx, dword [esp + 0xc]
lea edi, [eax + 9]
mov dword [esp + 4], eax
mov dword [esp + 0x10], edi
mov ebx, edx
mov ecx, esi
push 0xa09f7c
push edi
call fcn.004dece8
pop ecx
pop ecx
test edx, edx
je 0x5d98c7
mov al, byte [eax]
add al, 0xd0
cmp al, 0xa
jae 0x5d98c7
inc edi
mov edx, ebx
jmp 0x5d98a5
mov ecx, esi
mov edx, ebx
push 0xa09f8c
push edi
call fcn.004dece8
pop ecx
pop ecx
mov ecx, eax
push 8
push 0xa09edb
call fcn.005d8ffe
pop ecx
pop edx
test al, al
mov dword [esp + 8], 0
je 0x5d9af9
lea ebx, [edi + 8]
mov dword [esp + 0x2c], ebx
mov edx, dword [esp + 0xc]
mov ecx, esi
push 0xa09f9c
push ebx
call fcn.004dece8
pop ecx
pop ecx
test edx, edx
je 0x5d9a1d
mov al, byte [eax]
add al, 0xd0
cmp al, 0xa
jae 0x5d9a1d
inc ebx
jmp 0x5d98ff
mov al, byte [esp + 0x56]
mov edi, dword [esp + 0x78]
mov bh, byte [esp + 0x55]
mov esi, dword [esp + 0x18]
mov byte [esp + 8], al
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
cmp byte [esp + 8], 0
jne 0x5d9aed
test eax, eax
je 0x5d9ae3
cmp eax, dword [esp + 0x10]
jae 0x5d996d
cmp byte [edi + eax], 0xbf
jg 0x5d9973
jmp 0x5d9bc9
jne 0x5d9bc9
mov bl, byte [edi + eax - 1]
mov dword [esp + 4], eax
test bl, bl
js 0x5d9984
movzx edx, bl
jmp 0x5d99d4
mov ecx, edi
mov edi, eax
movzx eax, byte [ecx + eax - 2]
cmp al, 0xc0
jge 0x5d99b1
movzx edx, byte [ecx + edi - 3]
cmp dl, 0xc0
jge 0x5d99b8
movzx esi, byte [ecx + edi - 4]
and edx, 0x3f
and esi, 7
shl esi, 6
or edx, esi
mov esi, dword [esp + 0x18]
jmp 0x5d99bb
and eax, 0x1f
mov edi, ecx
jmp 0x5d99c5
and edx, 0xf
shl edx, 6
and eax, 0x3f
mov edi, ecx
or eax, edx
and bl, 0x3f
shl eax, 6
movzx edx, bl
or edx, eax
mov eax, dword [esp + 4]
test bh, bh
jne 0x5d9896
cmp edx, 0x110000
je 0x5d9aed
cmp edx, 0x80
mov eax, 0xffffffff
jb 0x5d9a0e
cmp edx, 0x800
push 0xfffffffffffffffe
pop eax
jb 0x5d9a0e
xor eax, eax
cmp edx, 0x10000
setb al
or eax, 0xfffffffc
mov ecx, dword [esp + 4]
mov bh, 1
add ecx, eax
mov eax, ecx
jmp 0x5d9949
mov eax, dword [esp + 0xc]
cmp ebx, eax
jae 0x5d9a2e
xor edi, edi
mov ebx, eax
jmp 0x5d9afb
mov ecx, esi
mov edx, eax
push 0xa09fac
push edi
push dword [esp + 0x18]
call fcn.005c8338
add esp, 0xc
mov edi, edx
lea ecx, [esp + 0x48]
mov edx, eax
push edi
call fcn.0044acf0
pop eax
lea eax, [esp + 0x48]
cmp byte [eax], 0
jne 0x5d9af5
lea eax, [esp + 0x48]
mov edx, dword [esp + 0xc]
mov ecx, esi
mov edi, dword [eax + 4]
push 0xa09fbc
push ebx
push dword [esp + 0x34]
call fcn.005c8338
add esp, 0xc
lea ebx, [esp + 0x48]
mov dword [esp + 0x10], edx
mov edx, eax
mov ecx, ebx
push dword [esp + 0x10]
call fcn.0044acf0
pop eax
cmp byte [ebx], 0
jne 0x5d9af5
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0xc]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14]
cmp ebx, ecx
jb 0x5d9aff
test ecx, ecx
je 0x5d9bbf
cmp ebx, ecx
jbe 0x5d9bb9
cmp byte [esi + ecx], 0xc0
jge 0x5d9bbf
push 0x30
pop edx
mov ecx, str.assertion_failed:_self.is_char_boundary_new_len_
push 0xa375c4
call fcn.0063cd70
jmp 0x5d9bb6
xor eax, eax
test bh, bh
jne 0x5d9896
mov dword [esp + 8], 0
mov ebx, dword [esp + 0xc]
xor edi, edi
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
cmp eax, ebx
jbe 0x5d9b4f
test ebx, ebx
mov dword [esp + 4], edi
je 0x5d9b2d
mov edx, eax
mov edi, ebx
mov ecx, esi
push ebx
push 1
call fcn.00404260
pop ecx
pop edx
mov edx, esi
mov esi, eax
test eax, eax
jne 0x5d9b3d
xor ecx, ecx
mov esi, edx
inc ecx
jmp 0x5d9b42
mov ecx, esi
xor esi, esi
mov edi, ebx
inc esi
mov edx, esi
push eax
call fcn.00402161
pop eax
mov ecx, 0x80000001
mov edx, edi
mov ebx, edi
call fcn.00427d90
mov edi, dword [esp + 4]
push 0x14
pop ecx
call fcn.005d9169
mov ecx, dword [esp + 8]
and dword [eax], 0
mov dword [eax + 4], esi
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 4]
push 0xa133e8
jmp 0x5d9bb1
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 8]
sub eax, dword [esp + 4]
add eax, ecx
mov ecx, eax
push 0xa133f8
jmp 0x5d9bb1
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x28]
cmp ecx, edx
cmovbe ecx, edx
push 0xa13408
jmp 0x5d9bb1
mov edx, dword [esp + 8]
push 0xa13418
call fcn.0063cc20
pop eax
ud2
jne 0x5d9acc
mov ebx, ecx
mov dword [eax + 8], ecx
jmp 0x5d9aff
mov edx, dword [esp + 0x10]
mov ecx, edi
push 0xa1359c
push eax
push 0
call fcn.0063d200
add esp, 0xc
ud2