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

Disassembly:
sub esp, 0x30
xor edx, edx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x40]
push edi
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x28]
mov dword [esi + 0x18], eax
or byte [ecx + 0x8c], 0x30
mov edi, dword [esi + 0xc]
mov eax, dword [esi]
mov ebx, dword [eax + 0x24]
cmp dword [edi + 0x44], edx
jbe 0x100d2180
xor ecx, ecx
nop dword [eax]
mov eax, dword [edi + 0x50]
lea ecx, [ecx + 0x14]
inc edx
mov dword [eax + ecx - 0x10], ebx
cmp edx, dword [edi + 0x44]
jb 0x100d2170
push dword [esi + 0xc]
call fcn.100d5690
mov edi, dword [esi + 0xc]
add esp, 4
mov eax, dword [edi + 0x10]
test al, 0x10
jne 0x100d2247
test al, 1
je 0x100d2247
cmp dword [edi + 0x84], 0
jne 0x100d2247
mov eax, dword [edi + 0x50]
movzx eax, word [eax + 0x10]
and eax, 0x1f
sub eax, 0xa
cmp eax, 2
ja 0x100d2247
mov ecx, dword [esi + 4]
push 0x25cc
call fcn.100cd5d0
test al, al
je 0x100d2247
xorps xmm0, xmm0
mov dword [esp + 0x18], 0x25cc
lea eax, [esp + 0x18]
movlpd qword [esp + 0x1c], xmm0
push edi
push eax
movlpd qword [esp + 0x2c], xmm0
call fcn.100aabb0
mov edx, dword [edi + 0x50]
add esp, 8
movups xmm0, xmmword [esp + 0x18]
mov eax, dword [esp + 0x28]
mov ecx, edi
mov dword [esp + 0x3c], eax
mov word [edi + 0x3e], 1
mov dword [edi + 0x48], 0
mov dword [edi + 0x54], edx
mov dword [edi + 0x40], 0
mov eax, dword [edx + 8]
movups xmmword [esp + 0x2c], xmm0
mov dword [esp + 0x34], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x2c]
push eax
call fcn.100e40a0
mov ecx, edi
call fcn.100fc0c0
push dword [esi + 0xc]
call fcn.100cdc00
mov edi, dword [esi + 0xc]
push dword [edi + 0x2c]
mov ebp, dword [edi + 0x28]
call fcn.10106e30
mov ecx, eax
add esp, 8
mov dword [esp + 0x14], ecx
cmp ecx, 5
jne 0x100d22da
cmp ebp, 4
jne 0x100d22da
xor cl, cl
xor edx, edx
xor bl, bl
mov byte [esp + 0x44], cl
mov byte [esp + 0x13], cl
mov ecx, dword [edi + 0x50]
cmp dword [edi + 0x44], edx
jbe 0x100d22d6
movzx eax, word [ecx + 0x10]
and eax, 0x1f
cmp eax, 0xd
jne 0x100d2299
mov byte [esp + 0x44], 1
jmp 0x100d22b6
add eax, 0xfffffffb
cmp eax, 4
jbe 0x100d22c5
mov eax, dword [ecx]
sub eax, 0x1f1e6
movzx ebx, bl
cmp eax, 0x19
mov eax, 1
cmovbe ebx, eax
inc edx
add ecx, 0x14
cmp edx, dword [edi + 0x44]
jb 0x100d2286
mov al, byte [esp + 0x13]
jmp 0x100d22c7
mov al, 1
cmp byte [esp + 0x44], 0
jne 0x100d22d2
test bl, bl
je 0x100d22d6
test al, al
je 0x100d2312
mov ecx, dword [esp + 0x14]
mov eax, ebp
and eax, 0xfffffffe
cmp eax, 4
jne 0x100d22ee
cmp ebp, ecx
je 0x100d2312
test ecx, ecx
jne 0x100d22f7
jmp 0x100d2312
cmp eax, 6
jne 0x100d2312
cmp ebp, eax
je 0x100d2312
cmp dword [edi + 0x14], 1
mov ecx, edi
sete al
movzx eax, al
push eax
push 0x100aacf0
call fcn.10098760
xor dword [edi + 0x28], 1
mov eax, dword [esi]
mov eax, dword [eax + 0x14]
cmp dword [eax + 0x10], 0
je 0x100d2358
push str.start_preprocess_text
push dword [esi + 4]
push dword [esi + 0xc]
call fcn.100e3110
add esp, 0xc
test al, al
je 0x100d2358
mov eax, dword [esi]
push dword [esi + 4]
push dword [esi + 0xc]
mov ecx, dword [eax + 0x14]
push eax
mov eax, dword [ecx + 0x10]
call eax
push str.end_preprocess_text
push dword [esi + 4]
push dword [esi + 0xc]
call fcn.100e3110
add esp, 0x18
push esi
call fcn.100d2bd0
mov eax, dword [esi + 0xc]
push esi
or byte [eax + 0x8c], 7
call fcn.100d2f70
mov eax, dword [esi]
add esp, 8
mov al, byte [eax + 0x81]
and al, 0x22
cmp al, 0x22
jne 0x100d238c
mov ecx, dword [esi + 0xc]
push 0x100deb30
call fcn.100bdf00
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x50]
mov dword [ecx + 0x54], eax
mov eax, dword [ecx + 0x44]
mov word [ecx + 0x3e], 0x100
mov dword [ecx + 0x48], 0
lea eax, [eax + eax*4]
shl eax, 2
test eax, eax
je 0x100d23bd
push eax
push 0
push dword [ecx + 0x58]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push esi
call fcn.100d14e0
push esi
call fcn.1005a5a0
mov ecx, dword [esi + 0xc]
add esp, 8
mov eax, dword [ecx + 0x28]
and eax, 0xfffffffd
cmp eax, 5
jne 0x100d23e4
push dword [ecx + 0x44]
push 0
call fcn.100ef9b0
mov eax, dword [esi + 0xc]
and byte [eax + 0x8c], 0xf8
mov eax, dword [esi]
mov al, byte [eax + 0x81]
test al, 0x20
je 0x100d240b
test al, 2
jne 0x100d240b
mov ecx, dword [esi + 0xc]
push 0x100deb30
call fcn.100bdf00
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi + 4]
test byte [ebx + 0x90], 2
je 0x100d2492
mov eax, dword [ebx + 0x10]
test al, 4
jne 0x100d2492
mov edx, dword [ebx + 0x1c]
mov edi, dword [ebx + 0x44]
mov ebp, dword [ebx + 0x50]
mov dword [esp + 0x44], edx
test al, 8
jne 0x100d2486
test edx, edx
jne 0x100d245f
mov dword [esp + 0x44], edx
mov edx, dword [ecx + 0x74]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x100d2447
mov eax, dword [eax + 8]
push eax
lea eax, [esp + 0x48]
push eax
mov eax, dword [edx + 0x1c]
push 0x20
push dword [ecx + 0x78]
push ecx
call eax
add esp, 0x14
test eax, eax
je 0x100d2486
test edi, edi
je 0x100d2492
lea ecx, [ebp + 0xc]
test byte [ecx + 4], 0x20
je 0x100d247c
mov al, byte [ecx]
shr al, 4
test al, 1
jne 0x100d247c
mov eax, dword [esp + 0x44]
mov dword [ecx - 0xc], eax
add ecx, 0x14
sub edi, 1
jne 0x100d2466
jmp 0x100d2492
push 0x100aab90
mov ecx, ebx
call fcn.100bdf00
mov eax, dword [esi]
mov eax, dword [eax + 0x14]
cmp dword [eax + 0x14], 0
je 0x100d24d8
push str.start_postprocess_glyphs
push dword [esi + 4]
push dword [esi + 0xc]
call fcn.100e3110
add esp, 0xc
test al, al
je 0x100d24d8
mov eax, dword [esi]
push dword [esi + 4]
push dword [esi + 0xc]
mov ecx, dword [eax + 0x14]
push eax
mov eax, dword [ecx + 0x14]
call eax
push str.end_postprocess_glyphs
push dword [esi + 4]
push dword [esi + 0xc]
call fcn.100e3110
add esp, 0x18
push dword [esi + 0xc]
call fcn.100d54a0
mov eax, dword [esi + 0xc]
add esp, 4
and byte [eax + 0x8c], 0xcf
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
pop edi
mov dword [ecx + 0x28], eax
mov eax, dword [esi + 0xc]
pop esi
pop ebp
pop ebx
mov dword [eax + 0x94], 0x3fffffff
mov dword [eax + 0x98], 0x1fffffff
mov word [eax + 0x8c], 0
add esp, 0x30
ret