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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x88
mov esi, esp
mov dword [esi + 0x70], ebp
mov dword [esi + 0x74], esp
mov dword [esi + 0x80], 0xffffffff
mov dword [esi + 0x7c], 0x1008a900
mov edx, dword [ebp + 8]
lea eax, [esi + 0x78]
lea edi, [esi + 0x30]
mov ecx, dword fs:[0]
mov dword [esi + 0x78], ecx
mov dword fs:[0], eax
mov byte [esi + 3], 1
mov dword [esi + 0x80], 0
mov eax, dword [edx]
mov edx, dword [edx + 8]
push 9
push 0x10130f5c
mov dword [esi + 4], edx
push edx
mov dword [esi + 0x10], eax
push eax
push edi
call fcn.100b4330
add esp, 0x14
cmp dword [esi + 0x30], 0
je 0x1008a2d3
mov eax, dword [esi + 0x60]
cmp dword [esi + 0x54], 0xffffffff
mov edi, dword [esi + 0x64]
mov ebx, dword [esi + 0x68]
lea edx, [esi + 0x38]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x6c]
je 0x1008a2f4
mov byte [esi + 3], 1
lea ecx, [esi + 0x24]
push 0
push eax
push ebx
push edi
push dword [esi + 0xc]
call fcn.10089e20
add esp, 0x14
jmp 0x1008a30b
cmp byte [esi + 0x3e], 0
je 0x1008a427
mov dword [esi + 0x24], 0
cmp dword [esi + 0x24], 0
mov al, 1
mov dword [esi + 0xc], eax
jne 0x1008a31a
jmp 0x1008a68a
mov byte [esi + 3], 1
lea ecx, [esi + 0x24]
push 1
push eax
push ebx
push edi
push dword [esi + 0xc]
call fcn.10089e20
add esp, 0x14
cmp dword [esi + 0x24], 0
mov al, 1
mov dword [esi + 0xc], eax
je 0x1008a68a
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 4]
lea edx, [eax + 9]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 8], edx
lea edi, [eax + ecx]
mov ecx, edx
test ecx, ecx
je 0x1008a356
nop word cs:[eax + eax]
nop
cmp dword [esi + 4], ecx
jbe 0x1008a350
cmp byte [eax + ecx], 0xbf
jg 0x1008a356
jmp 0x1008a797
jne 0x1008a797
mov ebx, dword [esi + 4]
sub ebx, ecx
je 0x1008a370
movzx edx, byte [eax + ecx]
add dl, 0xd0
cmp dl, 0xa
jae 0x1008a379
inc ecx
test ecx, ecx
jne 0x1008a340
jmp 0x1008a356
mov edx, dword [esi + 4]
test ecx, ecx
jne 0x1008a382
jmp 0x1008a3b6
lea edi, [eax + ecx]
mov edx, ecx
test ecx, ecx
je 0x1008a3b6
cmp dword [esi + 4], edx
jbe 0x1008a3b4
cmp byte [eax + edx], 0xbf
jg 0x1008a3b6
mov byte [esi + 3], 1
mov dword [esi + 0x80], 0
push 0x1013104c
mov ecx, dword [esi + 4]
push ecx
push edx
push ecx
push eax
call fcn.100f9bb0
add esp, 0x14
jmp 0x1008a836
jne 0x1008a38d
cmp ebx, 8
jb 0x1008a68a
mov ebx, 0x6c6f6320
mov eax, 0x206e6d75
xor ebx, dword [edi]
xor eax, dword [edi + 4]
or eax, ebx
jne 0x1008a68a
lea ebx, [edx + 8]
mov edi, ebx
mov eax, dword [esi + 0x10]
test edi, edi
je 0x1008a406
nop word cs:[eax + eax]
nop dword [eax]
cmp dword [esi + 4], edi
jbe 0x1008a400
cmp byte [eax + edi], 0xbf
jg 0x1008a406
jmp 0x1008a7bb
jne 0x1008a7bb
cmp dword [esi + 4], edi
je 0x1008a52c
movzx eax, byte [eax + edi]
add al, 0xd0
cmp al, 0xa
jae 0x1008a537
inc edi
mov eax, dword [esi + 0x10]
test edi, edi
jne 0x1008a3f0
jmp 0x1008a406
mov cl, byte [esi + 0x3d]
mov eax, dword [esi + 0x38]
test cl, cl
mov edx, ecx
sete bl
xor dl, 1
test eax, eax
je 0x1008a569
mov dword [esi + 8], edx
mov edx, dword [esi + 0x60]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x1c], edx
jmp 0x1008a466
xor ebx, ebx
add eax, ecx
mov ecx, 0
mov dword [esi + 8], 0
je 0x1008a579
cmp eax, dword [esi + 0xc]
jae 0x1008a480
cmp byte [edx + eax], 0xc0
jge 0x1008a486
jmp 0x1008a7f7
jne 0x1008a7f7
movzx ecx, byte [edx + eax - 1]
movzx edi, cl
test cl, cl
jns 0x1008a4e2
movzx ecx, byte [edx + eax - 2]
cmp cl, 0xbf
jg 0x1008a4c7
movzx edx, byte [edx + eax - 3]
cmp dl, 0xbf
jg 0x1008a4cc
mov dword [esi + 0x14], edx
mov edx, dword [esi + 0x1c]
movzx edx, byte [edx + eax - 4]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x14]
and dword [esi + 0x18], 7
shl dword [esi + 0x18], 6
and edx, 0x3f
add edx, dword [esi + 0x18]
jmp 0x1008a4cf
and ecx, 0x1f
jmp 0x1008a4da
and edx, 0xf
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov edx, dword [esi + 0x1c]
shl ecx, 6
and edi, 0x3f
or edi, ecx
test bl, 1
je 0x1008a574
cmp edi, 0x110000
je 0x1008a59d
mov ecx, 0xffffffff
cmp edi, 0x80
jb 0x1008a450
mov ecx, 0xfffffffe
cmp edi, 0x800
jb 0x1008a450
xor ecx, ecx
cmp edi, 0x10000
setb cl
or ecx, 0xfffffffc
jmp 0x1008a450
mov dword [esi + 0x20], edi
mov edi, dword [esi + 4]
mov dword [esi + 0x14], edi
jmp 0x1008a549
cmp edi, dword [esi + 4]
mov eax, dword [esi + 0x10]
mov dword [esi + 0x20], edi
mov dword [esi + 0x14], edi
jb 0x1008a68a
mov edi, edx
mov dword [esi + 0x1c], ebx
sub edi, dword [esi + 8]
jb 0x1008a5ca
cmp dword [esi + 8], 0
je 0x1008a5b1
mov ebx, dword [esi + 8]
cmp dword [esi + 4], ebx
jbe 0x1008a5af
cmp byte [eax + ebx], 0xc0
jge 0x1008a5b1
jmp 0x1008a5ca
xor ebx, ebx
test cl, cl
mov byte [esi + 0x3d], dl
jne 0x1008a57c
jmp 0x1008a5a6
mov ecx, dword [esi + 8]
mov ebx, eax
mov byte [esi + 0x3d], cl
mov dword [esi + 0x28], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x24], 1
cmp dword [esi + 0x24], 0
mov al, 1
mov dword [esi + 0xc], eax
jne 0x1008a31a
jmp 0x1008a68a
mov dword [esi + 0x38], eax
mov eax, dword [esi + 8]
mov byte [esi + 0x3d], al
mov byte [esi + 0x3e], 1
jmp 0x1008a2dd
jne 0x1008a5ca
test ecx, ecx
je 0x1008a5fe
cmp dword [esi + 4], edx
jbe 0x1008a5f2
cmp byte [eax + edx], 0xbf
mov dword [esi + 0x80], 0
jg 0x1008a5fe
mov byte [esi + 3], 1
mov dword [esi + 0x80], 0
push 0x1013106c
push edx
push dword [esi + 8]
push dword [esi + 4]
push eax
call fcn.100f9bb0
add esp, 0x14
jmp 0x1008a836
mov dword [esi + 0x80], 0
jne 0x1008a5ca
mov ecx, dword [esi + 8]
mov byte [esi + 3], 1
mov dword [esi + 0x80], 0
add ecx, eax
push edi
push ecx
lea eax, [esi + 0x30]
push eax
call fcn.100b60e0
add esp, 0xc
cmp byte [esi + 0x30], 0
mov edi, dword [esi + 0x1c]
jne 0x1008a68a
mov eax, dword [esi + 0x14]
sub eax, edi
jb 0x1008a81b
mov edx, dword [esi + 0x34]
test edi, edi
je 0x1008a653
cmp dword [esi + 4], edi
jbe 0x1008a64d
mov ecx, dword [esi + 0x10]
cmp byte [ecx + edi], 0xc0
jge 0x1008a653
jmp 0x1008a81b
jne 0x1008a81b
cmp dword [esi + 0x20], 0
je 0x1008a665
mov ecx, dword [esi + 0x14]
cmp dword [esi + 4], ecx
jne 0x1008a81b
add edi, dword [esi + 0x10]
mov dword [esi + 8], edx
mov byte [esi + 3], 1
push eax
push edi
lea eax, [esi + 0x30]
push eax
call fcn.100b60e0
add esp, 0xc
cmp byte [esi + 0x30], 0
mov ecx, dword [esi + 0x18]
je 0x1008a74c
mov eax, dword [ebp + 8]
movsd xmm0, qword [eax]
mov ebx, dword [eax + 8]
movsd qword [esi + 0x30], xmm0
mov dword [esi + 0x38], ebx
mov eax, dword [esi + 0x34]
cmp eax, ebx
jbe 0x1008a6d5
mov ecx, dword [esi + 0x30]
test ebx, ebx
je 0x1008a6da
push ebx
push 1
push eax
push ecx
call fcn.1001d540
add esp, 0x10
test eax, eax
jne 0x1008a6eb
mov dword [esi + 0x80], 1
push 1
push ebx
call fcn.100f97e0
add esp, 8
jmp 0x1008a836
mov eax, dword [esi + 0x30]
jmp 0x1008a6eb
push 1
push eax
push ecx
call fcn.1001d520
add esp, 0xc
mov eax, 1
xor ecx, ecx
cmp byte [esi + 0xc], 0
mov edx, dword [esi + 8]
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], ebx
cmovne edx, ecx
cmovne edi, ecx
mov dword [esi + 0x3c], edx
mov dword [esi + 0x40], edi
push 4
push 0x14
call fcn.1001d510
add esp, 8
test eax, eax
je 0x1008a7df
mov ecx, dword [esi + 0x40]
movsd xmm0, qword [esi + 0x30]
movsd xmm1, qword [esi + 0x38]
mov edx, dword [esi + 0x78]
mov dword [eax + 0x10], ecx
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov dword fs:[0], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [esi + 0x34]
cmp dword [esi + 4], ecx
jb 0x1008a78b
test ecx, ecx
je 0x1008a785
cmp dword [esi + 4], ecx
jbe 0x1008a783
mov eax, dword [esi + 0x10]
cmp byte [eax + ecx], 0xc0
jge 0x1008a785
mov byte [esi + 3], 1
push 0x10130d74
push 0x30
push str.assertion_failed:_self.is_char_boundary_new_len_G_f
call fcn.100f9870
add esp, 0xc
jmp 0x1008a836
jne 0x1008a766
mov eax, dword [ebp + 8]
mov dword [eax + 8], ecx
mov dword [esi + 0xc], 0
jmp 0x1008a68a
mov byte [esi + 3], 1
mov dword [esi + 0x80], 0
push 0x1013103c
mov edx, dword [esi + 4]
push edx
push ecx
push edx
push eax
call fcn.100f9bb0
add esp, 0x14
jmp 0x1008a836
mov byte [esi + 3], 1
mov dword [esi + 0x80], 0
push 0x1013105c
mov ecx, dword [esi + 4]
push ecx
push edi
push ecx
push eax
call fcn.100f9bb0
add esp, 0x14
jmp 0x1008a836
mov dword [esi + 0x80], 2
push 4
push 0x14
call fcn.100f97e0
add esp, 8
jmp 0x1008a836
mov byte [esi + 3], 1
mov dword [esi + 0x80], 0
push 0x10130d84
push eax
push 0
push dword [esi + 0xc]
push edx
call fcn.100f9bb0
add esp, 0x14
jmp 0x1008a836
mov byte [esi + 3], 1
push 0x1013107c
push dword [esi + 0x14]
push edi
push dword [esi + 4]
push dword [esi + 0x10]
call fcn.100f9bb0
add esp, 0x14
ud2