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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x64
mov ebp, dword [esp + 0x78]
lea ebx, [ecx + 0x38]
mov dword [esp], ecx
movzx eax, byte [ecx + 0x48]
nop word cs:[eax + eax]
lea ecx, [ebp - 0x10000]
cmp ecx, 0xd
ja case.default.0x1001ee8b
jmp dword [ecx*4 + 0x10034f0c]
lea ecx, [ebp - 0x30000]
cmp ecx, 0xd
ja case.0x1001eeaf.196618
jmp dword [ecx*4 + 0x10034f44]
and ebp, 0x20000
test al, al
je 0x1001f0b4
or ebp, 0x10000
jmp 0x1001ee80
and ebp, 0x20000
test al, al
je 0x1001f0da
or ebp, 0x10001
jmp 0x1001ee80
mov ebp, dword [esp]
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x3c]
mov esi, dword [ebp + 0x40]
cmp eax, esi
jne 0x1001f27c
mov edi, dword [ebx]
cmp edi, ecx
jge 0x10020651
lea ecx, [ebp + 0x50]
mov edx, edi
push 0
push 1
call fcn.10021670
add esp, 8
test eax, eax
je 0x1001ef23
mov ecx, dword [ebp + 0xc]
movzx ecx, word [ecx + edi*2]
mov word [eax], cx
mov edx, dword [ebp + 0xc]
lea eax, [edx + edi*2]
xor ecx, ecx
mov edi, eax
nop dword [eax]
mov esi, edi
movzx edi, word [edi]
test di, di
je 0x1001ef84
cmp di, 0x7f
ja 0x1001ef43
inc ecx
jmp 0x1001ef79
movzx ebp, di
mov ebx, 2
cmp ebp, 0x800
jb 0x1001ef74
and edi, 0xfc00
xor ebx, ebx
cmp edi, 0xdc00
je 0x1001ef74
movzx edi, di
xor ebx, ebx
cmp edi, 0xd800
sete bl
add ebx, 3
add ecx, ebx
mov ebp, dword [esp]
lea edi, [esi + 2]
test edx, edx
je 0x1001ef30
cmp esi, eax
jb 0x1001ef30
sub dword [ebp + 0x28], ecx
dec dword [ebp + 0x2c]
movzx ecx, word [eax + 2]
test cx, cx
je 0x1001efaf
nop word cs:[eax + eax]
mov word [eax], cx
movzx ecx, word [eax + 4]
add eax, 2
test cx, cx
jne 0x1001efa0
mov word [eax], 0
jmp 0x10020651
mov ebp, dword [esp]
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x3c]
mov esi, dword [ebp + 0x40]
cmp eax, esi
jne 0x1001f295
mov edi, dword [ebx]
cmp edi, ecx
jle 0x1001efd7
mov dword [ebx], ecx
mov edi, ecx
test edi, edi
jle 0x10020651
mov dword [esp + 4], ebx
lea ebx, [edi - 1]
lea ecx, [ebp + 0x50]
mov edx, ebx
push 0
push 1
call fcn.10021670
add esp, 8
test eax, eax
je 0x1001f006
mov ecx, dword [ebp + 0xc]
movzx ecx, word [ecx + edi*2 - 2]
mov word [eax], cx
mov esi, dword [ebp + 0xc]
lea eax, [esi + ebx*2]
lea ecx, [esi + edi*2]
xor edx, edx
mov dword [esp + 0xc], ecx
nop word cs:[eax + eax]
movzx ebx, word [ecx - 2]
test bx, bx
je 0x1001f077
mov edi, ecx
cmp bx, 0x7f
ja 0x1001f034
inc edx
jmp 0x1001f06a
movzx ebp, bx
mov ecx, 2
cmp ebp, 0x800
jb 0x1001f065
and ebx, 0xfc00
xor ecx, ecx
cmp ebx, 0xdc00
je 0x1001f065
movzx ebx, bx
xor ecx, ecx
cmp ebx, 0xd800
sete cl
add ecx, 3
add edx, ecx
mov ebp, dword [esp]
lea ecx, [edi + 2]
test esi, esi
je 0x1001f020
cmp edi, dword [esp + 0xc]
jb 0x1001f020
sub dword [ebp + 0x28], edx
dec dword [ebp + 0x2c]
mov ecx, dword [esp + 0xc]
movzx ecx, word [ecx]
test cx, cx
je 0x1001fc63
mov ebx, dword [esp + 4]
nop word cs:[eax + eax]
mov word [eax], cx
movzx ecx, word [eax + 4]
add eax, 2
test cx, cx
jne 0x1001f0a0
jmp 0x1001fc67
mov eax, dword [esp]
mov edi, dword [eax + 0x3c]
mov eax, dword [eax + 0x40]
test ebp, ebp
jne 0x1001f5cd
cmp edi, eax
jne 0x1001f9d3
mov eax, dword [ebx]
mov ecx, dword [esp]
mov edx, dword [ecx + 0x2c]
jmp 0x1001fa2f
mov eax, dword [esp]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x40]
test ebp, ebp
jne 0x1001f5ef
cmp edx, eax
jne 0x1001f9ef
mov eax, dword [ebx]
mov ecx, dword [esp]
mov edi, dword [ecx + 0x2c]
jmp 0x1002006a
mov ebp, dword [esp]
mov eax, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x40]
cmp edx, ecx
jne 0x1001f780
mov edx, dword [ebx]
jmp 0x1001f79d
mov ebp, dword [esp]
mov ecx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x40]
cmp ecx, eax
jne 0x1001f130
mov ecx, dword [ebp + 0x38]
mov dword [ebp + 0x3c], ecx
mov eax, ecx
lea edx, [eax + 1]
mov dword [ebp + 0x40], edx
cmp ecx, edx
jne 0x1001f7b7
mov edx, ecx
mov dword [ebp + 0x38], ecx
jmp 0x10020651
mov ebp, dword [esp]
mov esi, dword [ebp + 0x2c]
mov edi, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
cmp edi, edx
je 0x1001f7e5
cmp edi, esi
jle 0x1001f7d2
mov dword [ebp + 0x3c], esi
mov edi, esi
cmp edx, esi
jg 0x1001f7da
cmp edi, edx
je 0x1001f7e3
jmp 0x1001f7e7
mov ebp, dword [esp]
mov ecx, dword [ebp + 0x2c]
mov esi, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
cmp esi, edx
je 0x1001f817
cmp esi, ecx
jle 0x1001f804
mov dword [ebp + 0x3c], ecx
mov esi, ecx
cmp edx, ecx
jg 0x1001f80c
cmp esi, edx
je 0x1001f815
jmp 0x1001f819
mov ebp, dword [esp]
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp + 0x40]
jne 0x1001f1c5
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], 0
mov dword [ebp + 0x38], 0
jmp 0x10020651
mov ebp, dword [esp]
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp + 0x40]
jne 0x1001f1e9
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x38], eax
jmp 0x10020651
mov dword [esp + 4], ebx
mov ebp, dword [esp]
mov ebx, dword [ebp + 0x38]
mov esi, dword [ebp + 0x3c]
cmp esi, dword [ebp + 0x40]
jne 0x1001f211
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x3c], ebx
mov esi, ebx
mov edi, ebx
sar edi, 0x1f
and edi, ebx
dec edi
nop dword [eax]
test ebx, ebx
jle 0x1001f70e
dec ebx
mov ecx, ebp
mov edx, ebx
call fcn.10021b60
test eax, eax
je 0x1001f220
jmp 0x1001f710
mov dword [esp + 4], ebx
mov eax, dword [esp]
mov ebx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp esi, dword [eax + 0x40]
jne 0x1001f255
mov dword [eax + 0x40], ebx
mov dword [eax + 0x3c], ebx
mov esi, ebx
mov edi, dword [eax + 0x2c]
lea ebp, [ebx + 1]
cmp edi, ebp
cmovg ebp, edi
inc ebx
cmp ebx, edi
jge 0x1001f755
mov ecx, dword [esp]
mov edx, ebx
call fcn.10021b60
test eax, eax
je 0x1001f260
jmp 0x1001f757
cmp eax, ecx
jle 0x1001f2ae
mov dword [ebp + 0x3c], ecx
mov eax, ecx
cmp esi, ecx
jg 0x1001f2b2
cmp eax, esi
jne 0x1001f2bb
mov dword [ebx], eax
mov edx, eax
mov esi, eax
jmp 0x1001f2bd
cmp eax, ecx
jle 0x1001f2ec
mov dword [ebp + 0x3c], ecx
mov eax, ecx
cmp esi, ecx
jg 0x1001f2f0
cmp eax, esi
jne 0x1001f2f9
mov dword [ebx], eax
mov edx, eax
mov esi, eax
jmp 0x1001f2fb
cmp esi, ecx
jle 0x1001f289
mov dword [ebp + 0x40], ecx
mov esi, ecx
cmp eax, esi
je 0x1001f28d
mov edx, dword [ebx]
cmp edx, ecx
jle 0x1001f2c3
mov dword [ebx], ecx
mov edi, eax
sub edi, esi
je 0x10020651
jge 0x1001f30d
sub esi, eax
mov ecx, ebp
mov edx, ebx
push esi
push eax
call fcn.100214c0
add esp, 8
mov eax, dword [ebp + 0x3c]
mov dword [ebp + 0x40], eax
mov dword [ebx], eax
jmp 0x10020651
cmp esi, ecx
jle 0x1001f2a2
mov dword [ebp + 0x40], ecx
mov esi, ecx
cmp eax, esi
je 0x1001f2a6
mov edx, dword [ebx]
cmp edx, ecx
jle 0x1001f301
mov dword [ebx], ecx
mov edi, eax
sub edi, esi
je 0x10020651
jl 0x1001f2cf
mov ecx, ebp
mov edx, ebx
push edi
push esi
call fcn.100214c0
add esp, 8
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x3c], eax
mov dword [ebx], eax
jmp 0x10020651
mov ebp, dword [esp]
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x40]
cmp eax, ecx
jne 0x1001f5bb
mov eax, dword [ebx]
test eax, eax
jg 0x1001fc6e
jmp 0x10020651
mov ebp, dword [esp]
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
cmp ecx, edx
jne 0x1001f8c6
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x38]
inc eax
mov dword [ebp + 0x38], eax
jmp 0x1001fc0f
mov ebp, dword [esp]
mov esi, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
cmp ecx, edx
je 0x1001f8e9
cmp ecx, esi
jle 0x1001f8d6
mov dword [ebp + 0x3c], esi
mov ecx, esi
cmp edx, esi
jg 0x1001f8de
cmp ecx, edx
je 0x1001f8e7
jmp 0x1001f8eb
mov ebp, dword [esp]
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x3c]
mov esi, dword [ebp + 0x40]
cmp edx, esi
je 0x1001f95f
cmp edx, ecx
jle 0x1001f94c
mov dword [ebp + 0x3c], ecx
mov edx, ecx
cmp esi, ecx
jg 0x1001f954
cmp edx, esi
je 0x1001f95d
jmp 0x1001f961
mov ebp, dword [esp]
mov dword [ebp + 0x40], 0
mov dword [ebp + 0x3c], 0
mov dword [ebp + 0x38], 0
jmp 0x10020651
mov ebp, dword [esp]
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x40], 0
mov dword [ebp + 0x3c], 0
jmp 0x10020651
mov ebp, dword [esp]
movsx eax, word [ebp + 0xcc2]
test eax, eax
je 0x10020651
lea edi, [ebp + 0x50]
lea eax, [eax + eax*2]
mov ecx, dword [edi + eax*4 - 0xc]
movsx esi, word [edi + eax*4 - 8]
movsx ebx, word [edi + eax*4 - 6]
movsx eax, word [edi + eax*4 - 4]
mov dword [esp + 0x44], eax
movsx eax, word [ebp + 0xcc4]
lea eax, [eax + eax*2]
mov word [edi + eax*4 - 4], 0xffff
mov word [edi + eax*4 - 8], bx
mov edx, esi
mov dword [esp + 0x24], esi
mov word [edi + eax*4 - 6], si
mov dword [esp + 0x30], edi
mov dword [edi + eax*4 - 0xc], ecx
test ebx, ebx
mov edx, ecx
mov dword [esp + 0x18], ecx
je 0x1002041f
movsx ecx, word [ebp + 0xcc6]
add ecx, ebx
cmp ecx, 0x3e6
mov dword [esp + 0x2c], ebx
jle 0x1001fc76
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax*4]
add eax, 0xfffffff8
mov word [eax], 0
jmp 0x1002036b
mov ebp, dword [esp]
movsx eax, word [ebp + 0xcc4]
cmp eax, 0x63
je 0x10020651
movsx ecx, word [ebp + 0xcc2]
lea edx, [ecx + ecx*2]
lea eax, [eax + eax*2]
mov ecx, dword [ebp + eax*4 + 0x50]
movsx esi, word [ebp + eax*4 + 0x54]
movsx ebx, word [ebp + eax*4 + 0x56]
movsx edi, word [ebp + eax*4 + 0x58]
mov word [ebp + edx*4 + 0x56], si
mov word [ebp + edx*4 + 0x54], bx
mov dword [ebp + edx*4 + 0x50], ecx
mov word [ebp + edx*4 + 0x58], 0xffff
test ebx, ebx
mov eax, ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], esi
je 0x10020203
mov dword [esp + 8], edi
lea eax, [edx*4 + 0x54]
add eax, ebp
movsx edi, word [ebp + 0xcc6]
lea esi, [edi + ebx]
mov ecx, ebx
movsx ebx, word [ebp + 0xcc8]
cmp esi, ebx
mov dword [esp + 0x1c], ecx
jle 0x1001fef9
lea edx, [edx*4 + 0x56]
add edx, ebp
mov word [eax], 0
mov word [edx], 0
jmp 0x1001ff48
mov ebp, dword [esp]
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x40]
cmp eax, ecx
jne 0x1001f5bb
mov edi, dword [ebx]
mov esi, edi
sar esi, 0x1f
and esi, edi
dec esi
nop word cs:[eax + eax]
test edi, edi
jle 0x1001fbca
dec edi
mov ecx, ebp
mov edx, edi
call fcn.10021b60
test eax, eax
je 0x1001f560
jmp 0x1001fbcc
mov ebp, dword [esp]
mov edx, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x40]
cmp edx, ecx
jne 0x1001f9c3
mov dword [esp + 4], ebx
mov esi, dword [ebp + 0x2c]
mov ebx, dword [ebp + 0x38]
lea edi, [ebx + 1]
cmp esi, edi
cmovg edi, esi
nop
inc ebx
cmp ebx, esi
jge 0x1001fbe3
mov ecx, ebp
mov edx, ebx
call fcn.10021b60
test eax, eax
je 0x1001f5a0
jmp 0x1001fbe5
jle 0x1001f5c2
mov dword [ebp + 0x3c], ecx
mov eax, ecx
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x40], eax
jmp 0x10020651
cmp edi, eax
jne 0x1001fa00
mov ecx, dword [esp]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x40], eax
mov dword [ecx + 0x3c], eax
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0x10], eax
mov edi, eax
jmp 0x1001fa33
cmp edx, eax
jne 0x1001fb42
mov ecx, dword [esp]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x40], eax
mov dword [ecx + 0x3c], eax
mov edi, dword [ecx + 0x2c]
mov edx, eax
mov dword [esp + 8], eax
jmp 0x1002006e
xor ecx, ecx
cmp ebp, 0x10000
cmovl ecx, ebp
test ecx, ecx
mov ebp, dword [esp]
jle 0x10020655
mov edx, ebx
cmp ecx, 0xa
jne 0x1001f636
test al, al
jne 0x10020655
mov dword [esp + 4], ecx
cmp byte [ebp + 0x44], 0
mov edi, dword [ebp + 0x3c]
mov ebp, dword [ebp + 0x40]
je 0x100202a4
cmp edi, ebp
jne 0x100202a4
mov esi, dword [esp]
mov ebp, dword [esi + 0x38]
cmp ebp, dword [esi + 0x2c]
jge 0x100204ca
lea ecx, [esi + 0x50]
mov edx, ebp
push 1
push 1
call fcn.10021670
add esp, 8
test eax, eax
je 0x1001f680
mov ecx, dword [esi + 0xc]
movzx ecx, word [ecx + ebp*2]
mov word [eax], cx
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x38]
lea eax, [edx + eax*2]
xor ecx, ecx
mov edi, eax
mov ebp, esi
mov esi, edi
movzx edi, word [edi]
test di, di
je 0x1001f6e3
cmp di, 0x7f
ja 0x1001f6a2
inc ecx
jmp 0x1001f6d8
movzx ebp, di
mov ebx, 2
cmp ebp, 0x800
jb 0x1001f6d3
and edi, 0xfc00
xor ebx, ebx
cmp edi, 0xdc00
je 0x1001f6d3
movzx edi, di
xor ebx, ebx
cmp edi, 0xd800
sete bl
add ebx, 3
add ecx, ebx
mov ebp, dword [esp]
lea edi, [esi + 2]
test edx, edx
je 0x1001f68f
cmp esi, eax
jb 0x1001f68f
sub dword [ebp + 0x28], ecx
dec dword [ebp + 0x2c]
movzx ecx, word [eax + 2]
test cx, cx
je 0x10020741
mov edx, dword [esp + 4]
mov word [eax], cx
movzx ecx, word [eax + 4]
add eax, 2
test cx, cx
jne 0x1001f6fa
jmp 0x10020745
mov ebx, edi
xor ecx, ecx
test ebx, ebx
cmovg ecx, ebx
mov dword [ebp + 0x38], ecx
mov dword [ebp + 0x40], ecx
mov eax, dword [ebp + 0x2c]
cmp esi, ecx
je 0x1001f844
cmp esi, eax
jle 0x1001f731
mov dword [ebp + 0x3c], eax
mov esi, eax
mov edx, ecx
cmp ecx, eax
jle 0x1001f836
mov dword [ebp + 0x40], eax
mov edx, eax
cmp esi, edx
je 0x1001f83e
cmp ecx, eax
jg 0x1001f84e
jmp 0x10020655
mov ebx, ebp
cmp ebx, edi
cmovge ebx, edi
mov ebp, dword [esp]
mov dword [ebp + 0x38], ebx
mov dword [ebp + 0x40], ebx
cmp esi, ebx
jne 0x1001f859
cmp esi, edi
jle 0x10020655
mov eax, dword [esp + 4]
mov dword [eax], edi
jmp 0x10020655
cmp edx, eax
jle 0x1001f875
mov dword [ebp + 0x3c], eax
mov edx, eax
cmp ecx, eax
jg 0x1001f87d
cmp edx, ecx
jne 0x1001f88a
cmp edx, eax
cmovl eax, edx
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x3c], eax
mov ecx, eax
test ecx, ecx
jg 0x1001f88e
jmp 0x1001f892
mov esi, dword [ebp + 0x2c]
cmp ecx, esi
jle 0x1001f7c1
mov dword [ebp + 0x3c], esi
cmp eax, esi
jl 0x1001f7ca
mov dword [ebp + 0x40], esi
mov edx, esi
mov dword [ebp + 0x38], edx
jmp 0x10020651
cmp edx, esi
jle 0x1001f171
mov dword [ebp + 0x40], esi
mov edx, esi
cmp edi, edx
jne 0x1001f7e7
mov dword [ebx], edi
mov edx, edi
mov ecx, dword [ebx]
cmp ecx, esi
jle 0x1001f7f1
mov dword [ebx], esi
mov ecx, esi
cmp edi, edx
jne 0x1001f89a
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x3c], ecx
jmp 0x1001f89e
cmp edx, ecx
jle 0x1001f1a7
mov dword [ebp + 0x40], ecx
mov edx, ecx
cmp esi, edx
jne 0x1001f819
mov dword [ebx], esi
mov edx, esi
mov edi, dword [ebx]
cmp edi, ecx
jle 0x1001f823
mov dword [ebx], ecx
mov edi, ecx
cmp esi, edx
jne 0x1001f8b3
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x3c], edi
jmp 0x1001f8b7
cmp esi, edx
jne 0x1001f748
mov ecx, dword [esp + 4]
mov dword [ecx], esi
mov ecx, esi
cmp ecx, eax
jle 0x10020655
mov ecx, dword [esp + 4]
mov dword [ecx], eax
jmp 0x10020655
cmp esi, edi
jle 0x1001f862
mov dword [ebp + 0x3c], edi
mov esi, edi
cmp esi, ebx
jne 0x10020655
mov eax, dword [esp + 4]
mov dword [eax], ebx
jmp 0x10020655
cmp ecx, eax
jle 0x1001f795
mov dword [ebp + 0x40], eax
mov ecx, eax
cmp edx, ecx
je 0x1001f79d
test ecx, ecx
jle 0x1001f892
dec ecx
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x38], ecx
jmp 0x10020651
mov dword [ebx], edx
mov ecx, edx
test al, al
je 0x1001fb82
mov dword [ebx], 0
xor ecx, ecx
jmp 0x1001fbc2
mov dword [ebx], edx
mov edi, edx
test al, al
je 0x1001fba0
mov dword [ebx], ecx
jmp 0x1001fbc2
jle 0x1001fbf5
mov dword [ebp + 0x40], ecx
mov eax, ecx
jmp 0x1001fbf9
cmp edx, esi
jle 0x1001f391
mov dword [ebp + 0x40], esi
mov edx, esi
cmp ecx, edx
jne 0x1001f8eb
mov dword [ebx], ecx
mov edx, ecx
mov edi, dword [ebx]
cmp edi, esi
jle 0x1001f939
mov dword [ebx], esi
mov edi, esi
cmp ecx, edx
je 0x1001f93d
jle 0x1001f900
mov dword [ebp + 0x3c], edx
mov ecx, edx
mov dword [ebp + 0x38], ecx
mov dword [ebp + 0x40], ecx
mov byte [ebp + 0x47], 0
mov edi, ecx
test al, al
jne 0x1001f941
test edi, edi
jle 0x10020651
mov eax, dword [ebp + 0xc]
dec edi
cmp word [eax + edi*2], 0xa
je 0x10020651
mov dword [ebx], edi
lea ecx, [edi - 1]
inc edi
cmp edi, 1
mov edi, ecx
ja 0x1001f91c
jmp 0x10020651
cmp ecx, edx
jne 0x1001f8f9
test al, al
je 0x1001f910
mov dword [ebx], 0
jmp 0x10020651
cmp esi, ecx
jle 0x1001f3c7
mov dword [ebp + 0x40], ecx
mov esi, ecx
cmp edx, esi
jne 0x1001f961
mov dword [ebx], edx
mov esi, edx
mov edi, dword [ebx]
cmp edi, ecx
jle 0x1001f98c
mov dword [ebx], ecx
mov edi, ecx
cmp edx, esi
je 0x1001f990
jle 0x1001f976
mov dword [ebp + 0x3c], esi
mov edx, esi
mov dword [ebp + 0x38], edx
mov dword [ebp + 0x40], edx
mov byte [ebp + 0x47], 0
mov edi, edx
test al, al
jne 0x1001fc17
jmp 0x1001f998
cmp edx, esi
jne 0x1001f96f
test al, al
jne 0x1001fc17
cmp edi, ecx
jge 0x10020651
mov eax, dword [ebp + 0xc]
neg ecx
inc edi
cmp word [eax + edi*2 - 2], 0xa
je 0x10020651
mov dword [ebx], edi
lea edx, [ecx + edi]
inc edx
inc edi
cmp edx, 1
jne 0x1001f9a6
jmp 0x10020651
jle 0x1001fc1e
mov dword [ebp + 0x40], edx
mov eax, edx
jmp 0x1001fc22
jle 0x1001f9dd
mov ecx, dword [esp]
mov dword [ecx + 0x3c], eax
mov edi, eax
mov eax, dword [esp]
mov dword [eax + 0x38], edi
mov dword [eax + 0x40], edi
mov byte [eax + 0x47], 0
mov edx, dword [eax + 0x2c]
jmp 0x1001fa2d
jle 0x1001fc3d
mov ecx, dword [esp]
mov dword [ecx + 0x40], edx
jmp 0x1001fc43
mov ecx, dword [esp]
mov dword [ecx + 0x38], eax
mov edx, dword [ecx + 0x2c]
cmp edi, edx
jle 0x1001fa15
mov ecx, dword [esp]
mov dword [ecx + 0x3c], edx
mov edi, edx
mov ecx, eax
cmp eax, edx
jle 0x1001fa23
mov ecx, dword [esp]
mov dword [ecx + 0x40], edx
mov ecx, edx
mov dword [esp + 0x10], ecx
cmp edi, ecx
jne 0x1001fa33
mov dword [ebx], edi
mov eax, edi
mov dword [esp + 0x10], edi
cmp eax, edx
jle 0x1001fa3b
mov dword [ebx], edx
mov eax, edx
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
lea ebx, [esp + 0x4c]
mov ecx, ebx
mov esi, dword [esp]
mov edx, esi
push 0
push eax
call fcn.10021260
add esp, 8
mov eax, dword [esp + 0x60]
cmp eax, dword [esp + 0x58]
je 0x100201df
mov dword [esp + 0x20], edi
lea ecx, [esi + 0x4c]
cmp byte [esi + 0x47], 0
cmove ecx, ebx
movss xmm0, dword [ecx]
mov dword [esi + 0x38], eax
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 8]
lea ebx, [edx + ecx*2]
mov dword [esp + 0x14], edx
lea edx, [edx + eax*2]
mov esi, edx
nop
cmp esi, ebx
jae 0x1001faa1
lea edi, [esi + 2]
cmp word [esi], 0xa
mov esi, edi
jne 0x1001fa90
jmp 0x1001faa3
mov edi, esi
sub edi, edx
test edi, edi
jle 0x1001fbb7
shr edi, 1
cmp edi, 2
mov edx, 1
cmovge edx, edi
xorps xmm1, xmm1
mov ecx, dword [0x100e9750]
mov dword [esp + 0x1c], ecx
movss xmm2, dword [0x100341a8]
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x14]
movzx edi, word [ecx + eax*2]
cmp edi, 0xa
je 0x1002000d
mov dword [esp + 0xc], edx
mov edx, eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0x1850]
lea ecx, [edi*4]
add ecx, dword [ebx + 0x24]
lea esi, [ebx + 0x38]
cmp dword [ebx + 0x1c], edi
cmovg esi, ecx
movss xmm3, dword [eax + 0x1854]
mulss xmm3, dword [esi]
divss xmm3, dword [ebx]
ucomiss xmm3, xmm2
je 0x10020007
addss xmm1, xmm3
ucomiss xmm1, xmm0
mov esi, dword [esp + 4]
mov eax, edx
ja 0x1002000d
inc eax
mov dword [esi], eax
mov edx, dword [esp + 0xc]
dec edx
jne 0x1001fad3
jmp 0x1002000d
mov ecx, dword [esp]
mov dword [ecx + 0x38], eax
mov edi, dword [ecx + 0x2c]
mov dword [esp + 8], edx
cmp edx, edi
jle 0x1001fb5d
mov ecx, dword [esp]
mov dword [ecx + 0x3c], edi
mov dword [esp + 8], edi
mov edx, eax
cmp eax, edi
jle 0x1001fb6b
mov ecx, dword [esp]
mov dword [ecx + 0x40], edi
mov edx, edi
mov ecx, dword [esp + 8]
cmp ecx, edx
jne 0x1002006e
mov dword [ebx], ecx
mov eax, ecx
mov edx, ecx
jmp 0x1002006e
test ecx, ecx
jle 0x1001fbc2
mov eax, dword [ebp + 0xc]
cmp word [eax + ecx*2 - 2], 0xa
je 0x1001fbc2
dec ecx
mov dword [ebx], ecx
mov edx, ecx
inc edx
cmp edx, 1
ja 0x1001fb89
xor ecx, ecx
jmp 0x1001fbc2
cmp edi, ecx
jge 0x1001fbc0
mov eax, dword [ebp + 0xc]
cmp word [eax + edi*2], 0xa
je 0x1001fbc0
inc edi
mov dword [ebx], edi
cmp ecx, edi
jne 0x1001fba7
jmp 0x1001fbc2
mov esi, dword [esp + 4]
jmp 0x1002000d
mov ecx, edi
mov dword [ebp + 0x40], ecx
jmp 0x10020651
mov edi, esi
xor eax, eax
test edi, edi
cmovg eax, edi
mov ecx, dword [ebp + 0x2c]
cmp eax, ecx
cmovge eax, ecx
mov dword [ebp + 0x38], eax
jmp 0x10020655
mov ebx, edi
cmp ebx, esi
cmovl esi, ebx
mov eax, dword [esp + 4]
mov dword [eax], esi
jmp 0x10020655
mov eax, edx
mov edx, ecx
mov ecx, dword [ebp + 0x2c]
cmp edx, eax
je 0x1001fc09
cmp eax, ecx
jle 0x1001fc09
mov dword [ebp + 0x40], ecx
mov eax, ecx
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x3c], eax
cmp eax, ecx
jle 0x10020651
mov dword [ebx], ecx
jmp 0x10020651
mov eax, ecx
mov ecx, edx
cmp ecx, eax
je 0x1001fc32
mov ecx, dword [ebp + 0x2c]
cmp eax, ecx
jle 0x1001fc32
mov dword [ebp + 0x40], ecx
mov eax, ecx
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x3c], eax
jmp 0x10020651
mov ecx, eax
mov eax, edx
mov edx, ecx
cmp eax, edx
je 0x10020058
mov ecx, dword [esp]
mov eax, dword [ecx + 0x2c]
cmp edx, eax
jle 0x1002005b
mov dword [ecx + 0x40], eax
mov edx, eax
jmp 0x1002005b
mov ebx, dword [esp + 4]
mov word [eax], 0
mov eax, dword [ebx]
dec eax
mov dword [ebx], eax
jmp 0x10020651
lea eax, [ebp + 0x4f4]
mov dword [esp + 0x48], eax
lea eax, [ebp + 0xac]
mov dword [esp + 0x38], eax
lea eax, [ebp + 0x58]
mov dword [esp + 0x40], eax
jmp 0x1001fcdf
movzx eax, word [ebp + 0xcc4]
cwde
lea ecx, [eax + eax*2]
mov esi, dword [esp + 0x30]
lea edx, [esi + ecx*4]
lea ecx, [esi + ecx*4]
add ecx, 0xfffffff4
mov esi, 0x63
sub esi, eax
shl esi, 2
lea eax, [esi + esi*2]
push eax
push ecx
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [ebp + 0xcc4]
inc eax
mov word [ebp + 0xcc4], ax
mov edx, dword [esp + 0x28]
cmp ax, 0x63
je 0x10020361
movsx edx, word [ebp + 0xcc6]
add edx, ebx
movsx esi, word [ebp + 0xcc8]
movzx eax, word [ebp + 0xcc4]
mov ecx, esi
mov dword [esp + 0x34], esi
cmp edx, esi
jle 0x100202bb
cmp ax, 0x62
jg 0x1001fcd5
mov dword [esp + 0x28], edx
cmp word [ebp + 0x4f0], 0
js 0x1001fc9a
movsx edi, word [ebp + 0x4ec]
mov eax, dword [esp + 0x34]
add eax, edi
mov word [ebp + 0xcc8], ax
cwde
mov ecx, dword [esp + 0x48]
lea ecx, [ecx + eax*2]
mov esi, ecx
sub esi, edi
sub esi, edi
add eax, eax
mov edx, 0x7ce
sub edx, eax
push edx
push esi
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
movsx eax, word [ebp + 0xcc4]
cmp eax, 0x61
jg 0x1001fc9a
mov esi, 0x62
sub esi, eax
cmp esi, 9
jb 0x1001fec5
mov ecx, esi
and ecx, 7
mov edx, 8
cmove ecx, edx
sub esi, ecx
add esi, eax
mov dword [esp + 0x3c], esi
add ecx, eax
add ecx, 0xffffff9e
lea eax, [eax + eax*2]
mov edx, dword [esp + 0x38]
lea edx, [edx + eax*4]
pcmpeqd xmm4, xmm4
mov dword [esp + 0x14], edi
jmp 0x1001fdac
add edx, 0x60
add ecx, 8
je 0x1001fec1
mov dword [esp + 4], ecx
mov ebx, dword [edx - 0x48]
mov eax, dword [edx - 0x3c]
mov dword [esp + 0xc], eax
mov ebp, dword [edx - 0x30]
mov esi, dword [edx - 0x24]
mov ecx, dword [edx - 0x18]
mov edi, dword [edx - 0xc]
mov eax, dword [edx]
mov dword [esp + 0x1c], eax
movd xmm0, eax
mov dword [esp + 8], edi
movd xmm1, edi
punpcklwd xmm1, xmm0
mov dword [esp + 0x10], ecx
movd xmm0, ecx
mov ecx, ebx
mov dword [esp + 0x20], esi
movd xmm2, esi
mov esi, ebp
mov ebx, dword [esp + 0xc]
punpcklwd xmm2, xmm0
punpckldq xmm2, xmm1
movd xmm0, ebp
movd xmm1, ebx
punpcklwd xmm1, xmm0
movd xmm3, ecx
mov edi, dword [edx - 0x54]
movd xmm0, edi
punpcklwd xmm0, xmm3
punpckldq xmm0, xmm1
punpcklqdq xmm0, xmm2
pcmpgtw xmm0, xmm4
movd eax, xmm0
test al, 1
je 0x1001fe33
add edi, dword [esp + 0x14]
mov word [edx - 0x54], di
shr eax, 0x10
test al, 1
mov edi, dword [esp + 0x14]
je 0x1001fe44
add ecx, edi
mov word [edx - 0x48], cx
pextrw eax, xmm0, 2
test al, 1
mov ecx, dword [esp + 4]
je 0x1001fe57
add ebx, edi
mov word [edx - 0x3c], bx
pextrw eax, xmm0, 3
test al, 1
mov ebp, dword [esp]
je 0x1001fe69
add esi, edi
mov word [edx - 0x30], si
pextrw eax, xmm0, 4
test al, 1
mov ebx, dword [esp + 0x2c]
je 0x1001fe80
mov eax, dword [esp + 0x20]
add eax, edi
mov word [edx - 0x24], ax
pextrw eax, xmm0, 5
test al, 1
je 0x1001fe93
mov eax, dword [esp + 0x10]
add eax, edi
mov word [edx - 0x18], ax
pextrw eax, xmm0, 6
test al, 1
je 0x1001fea6
mov eax, dword [esp + 8]
add eax, edi
mov word [edx - 0xc], ax
pextrw eax, xmm0, 7
test al, 1
je 0x1001fda0
mov eax, dword [esp + 0x1c]
add eax, edi
mov word [edx], ax
jmp 0x1001fda0
mov eax, dword [esp + 0x3c]
lea ecx, [eax - 0x62]
lea eax, [eax + eax*2]
mov edx, dword [esp + 0x40]
lea eax, [edx + eax*4]
jmp 0x1001feea
add eax, 0xc
inc ecx
je 0x1001fc93
movzx edx, word [eax]
test dx, dx
js 0x1001fee0
add edx, edi
mov word [eax], dx
jmp 0x1001fee0
lea esi, [edx*4 + 0x58]
add esi, ebp
mov word [esi], di
add edi, ecx
mov word [ebp + 0xcc6], di
test cx, cx
jle 0x1001ff48
lea edx, [edx*4 + 0x50]
add edx, ebp
xor edi, edi
mov ecx, dword [esp]
mov ebx, dword [edx]
add ebx, edi
mov ebp, dword [esp]
mov ebp, dword [ebp + 0xc]
movzx ebx, word [ebp + ebx*2]
movsx ebp, word [esi]
add ebp, edi
mov word [ecx + ebp*2 + 0x4f4], bx
mov ebp, dword [esp]
inc edi
movsx ebx, word [eax]
cmp edi, ebx
jl 0x1001ff21
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
lea edx, [ecx + eax*2]
mov eax, dword [esp + 0x1c]
lea esi, [edx + eax*2]
mov dword [esp + 4], esi
test ax, ax
jg 0x1001ff68
xor eax, eax
test ecx, ecx
jne 0x1001ffc8
mov eax, dword [esp + 0xc]
lea ebx, [ecx + eax*2]
add ebx, 2
xor eax, eax
movzx ebp, word [ebx - 2]
test bp, bp
je 0x1001ffc8
mov edi, ebx
cmp bp, 0x7f
ja 0x1001ff88
inc eax
jmp 0x1001ffbb
movzx esi, bp
mov ebx, 2
cmp esi, 0x800
jb 0x1001ffb9
and ebp, 0xfc00
xor ebx, ebx
cmp ebp, 0xdc00
je 0x1001ffb9
movzx esi, bp
xor ebx, ebx
cmp esi, 0xd800
sete bl
add ebx, 3
add eax, ebx
lea ebx, [edi + 2]
test ecx, ecx
je 0x1001ff74
cmp edi, dword [esp + 4]
jb 0x1001ff74
mov ebp, dword [esp]
sub dword [ebp + 0x28], eax
mov ebx, dword [esp + 0x1c]
sub dword [ebp + 0x2c], ebx
mov eax, dword [esp + 4]
movzx eax, word [eax]
test ax, ax
je 0x100201f4
mov edi, dword [esp + 8]
nop dword [eax]
lea esi, [edx + 2]
mov word [edx], ax
movzx eax, word [edx + ebx*2 + 2]
mov edx, esi
test ax, ax
jne 0x1001fff0
jmp 0x100201fa
mov esi, dword [esp + 4]
mov eax, edx
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 0x10]
je 0x10020043
mov edi, dword [esp + 8]
cmp edx, edi
jle 0x10020027
mov ecx, dword [esp]
mov dword [ecx + 0x3c], edi
mov edx, edi
mov ecx, dword [esp + 0x10]
cmp ecx, edi
mov edi, ecx
jle 0x1002003b
mov ecx, dword [esp]
mov edi, dword [esp + 8]
mov dword [ecx + 0x40], edi
cmp edx, edi
jne 0x10020043
mov dword [esi], edx
mov eax, edx
mov ecx, dword [esp + 8]
cmp eax, ecx
jle 0x100201cc
mov dword [esi], ecx
mov eax, ecx
jmp 0x100201cc
mov ecx, dword [esp]
mov dword [ecx + 0x38], edx
mov dword [ecx + 0x3c], edx
mov byte [ecx + 0x47], 0
mov edi, dword [ecx + 0x2c]
mov eax, edx
mov dword [esp + 8], edx
mov dword [esp + 0x10], edx
cmp eax, edi
jle 0x1002007a
mov dword [ebx], edi
mov eax, edi
mov dword [esp + 4], ebx
lea ebx, [esp + 0x4c]
mov ecx, ebx
mov esi, dword [esp]
mov edx, esi
push 0
push eax
call fcn.10021260
add esp, 8
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x100201df
lea ecx, [esi + 0x4c]
cmp byte [esi + 0x47], 0
cmove ecx, ebx
movss xmm0, dword [ecx]
add eax, dword [esp + 0x58]
mov dword [esi + 0x38], eax
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x20], edi
lea ebx, [ecx + edi*2]
mov dword [esp + 0x14], ecx
lea edx, [ecx + eax*2]
mov esi, edx
nop dword [eax + eax]
cmp esi, ebx
jae 0x100200e1
lea edi, [esi + 2]
cmp word [esi], 0xa
mov esi, edi
jne 0x100200d0
jmp 0x100200e3
mov edi, esi
sub edi, edx
test edi, edi
jle 0x10020180
shr edi, 1
cmp edi, 2
mov edx, 1
cmovge edx, edi
xorps xmm1, xmm1
mov ecx, dword [0x100e9750]
mov dword [esp + 0x1c], ecx
movss xmm2, dword [0x100341a8]
mov esi, dword [esp + 4]
nop word cs:[eax + eax]
mov ecx, dword [esp + 0x14]
movzx edi, word [ecx + eax*2]
cmp edi, 0xa
je 0x1002018c
mov dword [esp + 0xc], edx
mov edx, eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0x1850]
lea ecx, [edi*4]
add ecx, dword [ebx + 0x24]
lea esi, [ebx + 0x38]
cmp dword [ebx + 0x1c], edi
cmovg esi, ecx
movss xmm3, dword [eax + 0x1854]
mulss xmm3, dword [esi]
divss xmm3, dword [ebx]
ucomiss xmm3, xmm2
je 0x10020186
addss xmm1, xmm3
ucomiss xmm1, xmm0
mov esi, dword [esp + 4]
mov eax, edx
ja 0x1002018c
inc eax
mov dword [esi], eax
mov edx, dword [esp + 0xc]
dec edx
jne 0x10020120
jmp 0x1002018c
mov esi, dword [esp + 4]
jmp 0x1002018c
mov esi, dword [esp + 4]
mov eax, edx
mov edi, dword [esp + 8]
cmp edi, dword [esp + 0x10]
jne 0x100201a0
mov edx, dword [esp + 0x20]
cmp eax, edx
jg 0x100201c8
jmp 0x100201cc
mov edx, dword [esp + 0x20]
cmp edi, edx
jle 0x100201b0
mov ecx, dword [esp]
mov dword [ecx + 0x3c], edx
mov edi, edx
mov ecx, dword [esp + 0x10]
cmp ecx, edx
jle 0x100201e6
mov ecx, dword [esp]
mov dword [ecx + 0x40], edx
mov ecx, edx
cmp edi, ecx
je 0x100201ea
cmp eax, edx
jle 0x100201cc
mov dword [esi], edx
mov eax, edx
mov esi, dword [esp]
mov byte [esi + 0x47], 1
movss dword [esi + 0x4c], xmm0
test ebp, ebp
je 0x100201df
mov dword [esi + 0x40], eax
mov ebp, esi
jmp 0x10020655
cmp edi, ecx
jne 0x100201c4
mov dword [esi], edi
mov eax, edi
cmp eax, edx
jg 0x100201c8
jmp 0x100201cc
mov esi, edx
mov edi, dword [esp + 8]
mov word [esi], 0
mov esi, dword [esp + 0x14]
test si, si
je 0x1002029d
mov ecx, dword [ebp + 0x2c]
lea eax, [ecx + esi]
cmp eax, dword [ebp + 4]
jge 0x10020629
lea edi, [edi*2 + 0x4f4]
add edi, ebp
test si, si
mov dword [esp + 4], edi
jle 0x100204c3
lea eax, [edi + esi*2]
xor edx, edx
mov esi, edi
jmp 0x10020249
add ebx, edx
mov edx, ebx
mov ebp, dword [esp]
cmp esi, eax
jae 0x100205cd
movzx edi, word [esi]
test di, di
je 0x100205cb
add esi, 2
cmp di, 0x7f
ja 0x1002026a
inc edx
mov ebx, edx
cmp esi, eax
jb 0x10020249
jmp 0x100205cd
movzx ebp, di
mov ebx, 2
cmp ebp, 0x800
jb 0x1002023a
and edi, 0xfc00
xor ebx, ebx
cmp edi, 0xdc00
je 0x1002023a
movzx edi, di
xor ebx, ebx
cmp edi, 0xd800
sete bl
add ebx, 3
jmp 0x1002023a
xor esi, esi
jmp 0x10020630
mov eax, dword [esp]
mov eax, dword [eax + 0x2c]
cmp edi, ebp
mov ebx, edx
jne 0x100204d1
mov edi, ebp
jmp 0x100204fb
cwde
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x34]
sub ecx, ebx
mov esi, dword [esp + 0x30]
mov word [esi + eax*4 - 4], cx
sub word [ebp + 0xcc8], bx
test bx, bx
jle 0x1002036b
mov ecx, esi
mov dword [esp + 0x28], edx
lea eax, [esi + eax*4]
add eax, 0xfffffffc
xor ecx, ecx
cmp bx, 1
je 0x10020336
mov edx, dword [esp + 0x2c]
and edx, 0xfffffffe
mov ecx, dword [esp + 0x18]
lea esi, [ecx + ecx]
xor ecx, ecx
mov edi, dword [ebp + 0xc]
add edi, esi
movzx edi, word [edi + ecx*2]
movsx ebx, word [eax]
add ebx, ecx
mov word [ebp + ebx*2 + 0x4f4], di
mov edi, dword [ebp + 0xc]
add edi, esi
movzx edi, word [edi + ecx*2 + 2]
movsx ebx, word [eax]
add ebx, ecx
mov word [ebp + ebx*2 + 0x4f6], di
add ecx, 2
cmp edx, ecx
jne 0x10020302
mov ebx, dword [esp + 0x2c]
test bl, 1
mov edx, dword [esp + 0x28]
je 0x10020361
mov edx, dword [esp + 0x18]
add edx, ecx
mov esi, dword [ebp + 0xc]
movzx edx, word [esi + edx*2]
movsx eax, word [eax]
add eax, ecx
mov word [ebp + eax*2 + 0x4f4], dx
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x34]
jg 0x10020651
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x18]
lea eax, [edx + eax*2]
lea ecx, [eax + ebx*2]
mov dword [esp + 4], ecx
test bx, bx
jg 0x10020387
xor esi, esi
test edx, edx
jne 0x100203ea
mov ecx, dword [esp + 0x18]
lea ecx, [edx + ecx*2]
add ecx, 2
xor esi, esi
movzx ebx, word [ecx - 2]
test bx, bx
je 0x100203ea
mov edi, ecx
cmp bx, 0x7f
ja 0x100203a7
inc esi
jmp 0x100203dd
movzx ebp, bx
mov ecx, 2
cmp ebp, 0x800
jb 0x100203d8
and ebx, 0xfc00
xor ecx, ecx
cmp ebx, 0xdc00
je 0x100203d8
movzx ebx, bx
xor ecx, ecx
cmp ebx, 0xd800
sete cl
add ecx, 3
add esi, ecx
mov ebp, dword [esp]
lea ecx, [edi + 2]
test edx, edx
je 0x10020393
cmp edi, dword [esp + 4]
jb 0x10020393
sub dword [ebp + 0x28], esi
mov esi, dword [esp + 0x2c]
sub dword [ebp + 0x2c], esi
mov ecx, dword [esp + 4]
movzx ecx, word [ecx]
test cx, cx
je 0x10020414
lea edx, [eax + 2]
mov word [eax], cx
movzx ecx, word [eax + esi*2 + 2]
mov eax, edx
test cx, cx
jne 0x10020400
jmp 0x10020416
mov edx, eax
mov word [edx], 0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
test dx, dx
je 0x100204b8
mov eax, dword [ebp + 0x2c]
lea ecx, [eax + edx]
cmp ecx, dword [ebp + 4]
jge 0x1002059e
mov ecx, dword [esp + 0x44]
lea esi, [ecx*2 + 0x4f4]
add esi, ebp
test dx, dx
mov dword [esp + 4], esi
jle 0x100204bf
lea ecx, [esi + edx*2]
xor edx, edx
jmp 0x10020464
add ebx, edx
mov edx, ebx
cmp esi, ecx
jae 0x10020533
movzx ebp, word [esi]
test bp, bp
je 0x10020531
add esi, 2
cmp bp, 0x7f
ja 0x10020485
inc edx
mov ebx, edx
cmp esi, ecx
jb 0x10020464
jmp 0x10020533
movzx edi, bp
mov ebx, 2
cmp edi, 0x800
jb 0x10020458
and ebp, 0xfc00
xor ebx, ebx
cmp ebp, 0xdc00
je 0x10020458
movzx edi, bp
xor ebx, ebx
cmp edi, 0xd800
sete bl
add ebx, 3
jmp 0x10020458
xor edx, edx
jmp 0x100205a9
xor ebx, ebx
jmp 0x10020533
xor ebx, ebx
jmp 0x100205cd
mov ebx, edx
mov eax, dword [esi + 0x2c]
jmp 0x100204f9
cmp edi, eax
jle 0x100204e7
mov ecx, dword [esp]
mov dword [ecx + 0x3c], eax
mov edi, eax
cmp ebp, eax
jg 0x100204eb
cmp edi, ebp
je 0x100204f7
jmp 0x100204fb
cmp ebp, eax
jle 0x100204e1
mov ecx, dword [esp]
mov dword [ecx + 0x40], eax
mov ebp, eax
cmp edi, ebp
jne 0x100204fb
mov dword [ebx], edi
mov ebp, edi
mov esi, dword [ebx]
cmp esi, eax
jle 0x10020505
mov dword [ebx], eax
mov esi, eax
mov ebx, edi
sub ebx, ebp
je 0x1002068f
jge 0x10020670
sub ebp, edi
mov ecx, dword [esp]
push ebp
mov ebx, ecx
push edi
call fcn.100214c0
add esp, 8
mov esi, dword [ebx + 0x3c]
mov dword [ebx + 0x40], esi
jmp 0x10020685
mov ebx, edx
mov ebp, dword [esp]
mov ecx, dword [ebp + 0x28]
add ecx, ebx
cmp ecx, dword [ebp + 0x30]
mov edx, dword [esp + 0x24]
jge 0x1002059e
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x18]
sub eax, ecx
je 0x10020572
mov ecx, dword [esp + 0x18]
lea ecx, [esi + ecx*2]
mov edx, dword [esp + 0x24]
lea edx, [ecx + edx*2]
add eax, eax
push eax
push ecx
push edx
call sub.VCRUNTIME140.dll_memmove
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
add esp, 0xc
lea eax, [esi + ecx*2]
lea ecx, [edx + edx]
push ecx
push dword [esp + 8]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x30]
add esp, 0xc
mov eax, dword [ebp + 0x2c]
add eax, edx
mov dword [ebp + 0x2c], eax
add dword [ebp + 0x28], ebx
mov ecx, dword [ebp + 0xc]
mov word [ecx + eax*2], 0
sub word [ebp + 0xcc6], dx
mov ecx, dword [esp + 0x18]
add edx, ecx
mov dword [ebp + 0x38], edx
movd xmm0, dword [ebp + 0xcc2]
pcmpeqd xmm1, xmm1
paddw xmm1, xmm0
movd dword [ebp + 0xcc2], xmm1
jmp 0x10020651
mov ebx, edx
mov eax, dword [ebp + 0x28]
add eax, ebx
cmp eax, dword [ebp + 0x30]
mov esi, dword [esp + 0x14]
jge 0x10020629
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0xc]
sub ecx, edi
je 0x100205fd
lea eax, [esi + edi*2]
mov edx, dword [esp + 0x14]
lea edx, [eax + edx*2]
add ecx, ecx
push ecx
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
lea eax, [esi + edi*2]
mov esi, dword [esp + 0x14]
lea ecx, [esi + esi]
push ecx
push dword [esp + 8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0x2c]
add eax, esi
mov dword [ebp + 0x2c], eax
add dword [ebp + 0x28], ebx
mov ecx, dword [ebp + 0xc]
mov word [ecx + eax*2], 0
add word [ebp + 0xcc8], si
mov eax, dword [esp + 0xc]
add esi, eax
mov dword [ebp + 0x38], esi
movd xmm0, dword [ebp + 0xcc2]
pcmpeqd xmm1, xmm1
psubw xmm0, xmm1
movd dword [ebp + 0xcc2], xmm0
mov byte [ebp + 0x47], 0
mov byte [ebp + 0xcd0], 1
mov dword [ebp + 0xccc], 0xbe99999a
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov ecx, dword [esp]
push ebx
push ebp
mov ebx, ecx
call fcn.100214c0
add esp, 8
mov esi, dword [ebx + 0x40]
mov dword [ebx + 0x3c], esi
mov dword [ebx + 0x38], esi
mov byte [ebx + 0x47], 0
mov eax, dword [ebx + 0x2c]
lea ecx, [eax + 1]
mov ebp, dword [esp]
cmp ecx, dword [ebp + 4]
mov edx, dword [esp + 4]
jge 0x10020655
movzx ecx, dx
mov ebx, 1
cmp ecx, 0x80
jb 0x100206de
mov ebx, 2
cmp ecx, 0x800
jb 0x100206de
mov ecx, edx
and ecx, 0xfc00
xor ebx, ebx
cmp ecx, 0xdc00
je 0x100206de
movzx ecx, cx
xor ebx, ebx
cmp ecx, 0xd800
sete bl
add ebx, 3
mov ecx, dword [ebp + 0x28]
add ecx, ebx
cmp ecx, dword [ebp + 0x30]
jge 0x10020655
mov edi, dword [ebp + 0xc]
sub eax, esi
je 0x10020709
lea ecx, [edi + esi*2]
lea edx, [edi + esi*2]
add edx, 2
add eax, eax
push eax
push ecx
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esp + 4]
mov word [edi + esi*2], ax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x2c]
lea edx, [ecx + 1]
mov dword [ebp + 0x2c], edx
add dword [ebp + 0x28], ebx
mov word [eax + ecx*2 + 2], 0
mov edx, dword [ebp + 0x38]
lea ecx, [ebp + 0x50]
push 1
push 0
call fcn.10021670
add esp, 8
inc dword [ebp + 0x38]
jmp 0x10020651
mov edx, dword [esp + 4]
mov word [eax], 0
mov eax, dword [ebp + 0x2c]
lea ecx, [eax + 1]
cmp ecx, dword [ebp + 4]
jge 0x10020655
xor ebx, ebx
test dx, dx
je 0x100207a3
movzx ecx, dx
mov ebx, 1
cmp ecx, 0x80
jb 0x100207a3
mov ebx, 2
cmp ecx, 0x800
jb 0x100207a3
mov ecx, edx
and ecx, 0xfc00
mov ebx, 0
cmp ecx, 0xdc00
je 0x100207a3
movzx ecx, cx
xor ebx, ebx
cmp ecx, 0xd800
sete bl
add ebx, 3
mov ecx, dword [ebp + 0x28]
add ecx, ebx
cmp ecx, dword [ebp + 0x30]
jge 0x10020655
mov esi, dword [ebp + 0x38]
mov edi, dword [ebp + 0xc]
sub eax, esi
je 0x100207d1
lea ecx, [edi + esi*2]
lea edx, [edi + esi*2]
add edx, 2
add eax, eax
push eax
push ecx
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esp + 4]
mov word [edi + esi*2], ax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x2c]
lea edx, [ecx + 1]
mov dword [ebp + 0x2c], edx
add dword [ebp + 0x28], ebx
mov word [eax + ecx*2 + 2], 0
inc dword [ebp + 0x38]
jmp 0x10020651