Function at 0x10020ae0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x40
push ebx
mov ebx, dword [0x100ce980]
mov eax, ecx
mov dl, bl
mov dword [esp + 0x3c], eax
sub dl, al
add dl, 0x5c
cmp dword [0x100cea50], 0x10bc
push esi
mov byte [0x100ce986], dl
jne 0x10020b25
cmp dword [0x100cea54], 0
jne 0x10020b25
mov al, 0x60
sub al, dl
mov dl, al
sub dl, byte [0x100ce9d0]
mov byte [0x100ce986], dl
movzx eax, word [0x100ce9a4]
push edi
mov edi, dword [0x100ce9b4]
mov ecx, edi
sub ecx, ebx
sub ecx, 9
sub eax, 1
je 0x10020b53
mov esi, dword [0x100ce9b0]
sub edi, esi
lea eax, [edi - 0x4c]
add eax, ecx
mov dword [0x100ce9b4], eax
jmp 0x10020b60
mov esi, ecx
sub esi, edi
add esi, 0x5c
mov dword [0x100ce9b0], esi
movzx eax, dl
mov edi, 0x2355
sub edi, dword [esp + 0x44]
sub ebx, eax
sub ebx, edi
mov dword [0x100ee7f0], 0x100df7d0
lea ecx, [ebx - 8]
mov dword [0x100ce980], ecx
call fcn.100207e0
movzx eax, ax
mov edx, 0x100ce9f0
mov dword [esp + 0x40], eax
nop dword [eax]
nop dword [eax + eax]
movzx eax, word [0x100ce998]
mov ecx, dword [0x100ce9b4]
cmp ecx, eax
je 0x10020bd1
add word [edx], si
lea eax, [esi + esi]
mov ecx, 0xffffffac
sub edx, 2
sub ecx, eax
add edi, ecx
cmp edx, 0x100ce994
jg 0x10020ba0
mov ecx, dword [0x100ce9b4]
movzx eax, byte [0x100ce986]
lea edx, [ecx + 0x9d55]
add edx, edi
mov ebx, edx
mov dword [esp + 0x3c], edx
lea eax, [eax + eax*2]
shl eax, 5
sub ebx, eax
mov al, bl
mov dword [0x100ce980], ebx
sub al, dl
add al, 0x5c
mov byte [0x100ce986], al
mov eax, dword [esp + 0x40]
cmp word [0x100ce99c], ax
ja 0x10020c2f
movzx eax, ax
sub ebx, eax
mov word [0x100ce990], cx
add ebx, 0xffffffb4
add ebx, ecx
lea eax, [eax*2 - 2]
mov dword [0x100ce980], ebx
mov dword [0x100ce9b4], eax
mov ecx, ebx
call fcn.10020210
movzx ecx, ax
mov al, byte [esp + 0x3c]
sub al, 0x2e
mov dword [esp + 0x40], ecx
add byte [0x100ce986], al
mov eax, 0x10bc
cmp word [0x100ce9b4], ax
jne 0x10020c71
movzx eax, word [0x100ce994]
mov edx, ebx
sub edx, eax
sub edx, dword [0x100ce9b4]
add edx, 2
mov dword [0x100ce9b4], edx
sub esp, 0xc
movzx edx, cx
mov ecx, ebx
call fcn.10020540
movzx edi, byte [0x100ce986]
add esp, 0xc
mov ebx, dword [esp + 0x3c]
mov eax, edi
movzx ecx, word [0x100ce9b4]
sub eax, ebx
add eax, 0xfffffff7
mov dword [esp + 0x38], eax
movzx eax, word [0x100ce99a]
sub ecx, eax
cmp ecx, 0x346
jne 0x10020cd0
mov eax, dword [0x100ce9b4]
mov edx, dword [0x100ce9b0]
mov dword [esp + 0x14], edx
lea esi, [eax*2 + 0x3327]
add esi, edx
lea ecx, [eax*2 - 0x6a2e]
jmp 0x10020cf3
mov eax, dword [0x100ce9b0]
mov edx, eax
mov ecx, dword [0x100ce9b4]
mov dword [esp + 0x14], eax
add ecx, edx
mov eax, 0x6a2a
sub eax, ecx
add ecx, 0xffff95d2
lea esi, [ebx + eax*2]
mov eax, 2
mov dword [esp + 0x20], edx
sub eax, ecx
mov dword [0x100ce9b4], ecx
add esi, eax
mov dword [esp + 0x3c], 0x20d50db
mov eax, dword [esp + 0x40]
cmp word [0x100ce99c], ax
ja 0x10020d40
movzx ebx, ax
mov word [0x100ce990], cx
sub ecx, ebx
lea eax, [ebx*2 - 2]
mov ebx, dword [esp + 0x38]
add ebx, 0xffffffb4
mov dword [0x100ce9b4], eax
add ebx, ecx
mov ecx, eax
jmp 0x10020d44
mov ebx, dword [esp + 0x38]
movzx eax, word [0x100ce99c]
sub edi, esi
add edi, 0xffffffb4
add edi, ebx
mov dword [esp + 0x30], edi
mov dword [0x100ce980], edi
cmp eax, edx
ja 0x10020d7a
mov word [0x100ce990], cx
lea eax, [edx*2 - 2]
sub ecx, edx
mov dword [0x100ce9b4], eax
add esi, 0xffffffb4
add esi, ecx
mov ecx, edi
call fcn.10020210
mov ecx, dword [esp + 0x30]
movzx ebx, ax
sub ecx, esi
movzx eax, bx
add ecx, 0x6a2e
mov dword [esp + 0x38], eax
mov edx, ecx
movzx eax, byte [0x100ce986]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x2c], 0x13
lea eax, [eax + eax*2]
mov dword [esp + 0x40], 0x79
shl eax, 5
sub edx, eax
movzx eax, word [0x100ce99a]
mov dword [esp + 0x34], edx
mov dl, byte [esp + 0x20]
sub dl, cl
movzx ecx, word [0x100ce9b4]
sub ecx, eax
add dl, 0x5c
mov eax, dword [0x100ce9b4]
cmp ecx, 0x346
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x48], dl
jne 0x10020e04
lea esi, [eax*2 + 0x3327]
add esi, ecx
lea edi, [eax*2 - 0x6a2e]
jmp 0x10020e1a
mov edi, dword [esp + 0x30]
add eax, ecx
mov esi, 0x6a2a
sub esi, eax
lea esi, [edi + esi*2]
lea edi, [eax - 0x6a2e]
mov eax, 2
mov dword [esp + 0x1c], edi
sub eax, edi
mov dword [esp + 0x30], 0xbc
add esi, eax
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], esi
sub eax, edi
add esi, 0xffffffb4
add esi, eax
mov dword [esp + 0x28], esi
cmp dword [esp + 0x18], edi
jb 0x10020e6a
sub word [0x100ce996], cx
mov eax, 0xfffffff0
add ecx, edi
add ecx, ecx
sub eax, ecx
mov ecx, dword [esp + 0x18]
add ecx, eax
jmp 0x10020e6e
mov ecx, dword [esp + 0x18]
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x1c]
shl eax, 5
mov edi, ecx
sub edi, eax
mov eax, dword [esp + 0x48]
movzx eax, al
mov dword [esp + 0x18], edi
cmp eax, ecx
jb 0x10020e9f
sub word [0x100ce996], bx
mov al, cl
add al, byte [esp + 0x38]
add al, al
sub dl, al
sub dl, 0x10
mov eax, ecx
mov dh, dl
mov ecx, 0x10bc
mov dword [esp + 0x34], eax
cmp word [0x100ce9b4], cx
jne 0x10020ed3
movzx eax, word [0x100ce994]
sub edi, eax
sub edi, dword [esp + 0x1c]
add edi, 2
mov eax, edi
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x34], eax
lea ecx, [eax - 0x6a2e]
add ecx, edi
mov dword [esp + 0x18], ecx
cmp word [0x100ce99c], bx
ja 0x10020f0d
mov dl, al
mov word [0x100ce990], ax
sub dl, byte [esp + 0x38]
movzx eax, bx
sub dl, 0x4c
add dl, dh
lea edi, [eax*2 - 2]
mov eax, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x34], eax
movzx eax, word [0x100ce99a]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], 0
mov dword [esp + 0x48], eax
nop dword [eax + eax]
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x20], eax
je 0x10020f6f
mov ecx, dword [esp + 0x20]
mov ebx, esi
mov dword [esp + 0x1c], ebx
lea eax, [ebx + ebx*2]
shl eax, 5
sub ecx, eax
movzx eax, word [0x100ce992]
cmp dword [esp + 0x20], eax
je 0x10020f6f
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
cmp eax, 0x32
mov eax, dword [esp + 0x48]
jl 0x10020f30
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
movzx eax, dl
mov dword [esp + 0x18], ecx
cmp eax, edi
jb 0x10020fb0
mov cl, byte [esp + 0x1c]
mov al, 0xf0
add cl, byte [esp + 0x38]
sub word [0x100ce996], bx
add cl, cl
sub al, cl
mov ecx, dword [esp + 0x18]
add dl, al
nop dword [eax]
nop word [eax + eax]
movzx eax, word [0x100ce99a]
movzx ebx, word [0x100ce9b4]
sub ebx, eax
mov dword [esp + 0x34], ebx
cmp ebx, 0x346
mov ebx, dword [esp + 0x10]
jne 0x10020fe8
mov eax, dword [esp + 0x1c]
mov dl, bl
add dl, 0x55
lea eax, [eax*2 - 0x6a2e]
mov dword [esp + 0x38], eax
add dl, al
jmp 0x10021001
movzx eax, bx
add eax, 0xffff95d2
add eax, edi
mov dword [esp + 0x38], eax
add al, al
sub dl, al
mov eax, dword [esp + 0x38]
sub dl, 8
mov edi, dword [esp + 0x38]
mov dword [0x100ce9b4], eax
mov eax, 2
sub eax, edi
mov byte [esp + 0xf], dl
add ecx, eax
mov eax, 0x10bc
cmp word [0x100ce9b4], ax
jne 0x10021039
movzx eax, word [0x100ce994]
sub esi, eax
mov eax, esi
mov dword [esp + 0x28], esi
sub eax, ecx
lea ecx, [eax + 2]
movzx eax, bx
mov ebx, edi
mov dword [esp + 0x28], eax
cmp ecx, eax
jbe 0x10021093
mov esi, dword [esp + 0x14]
mov eax, 8
sub eax, edi
lea eax, [esi + eax*2]
add ecx, eax
cmp word [esp + 0x10], 0
jne 0x10021093
movzx eax, word [0x100ce9a4]
movzx ebx, dl
sub ebx, ecx
add ebx, 0xfffffff7
sub eax, 1
je 0x10021088
mov eax, esi
sub eax, edi
add eax, 0xffffffb4
add eax, ebx
mov ebx, edi
mov dword [esp + 0x14], eax
mov dword [0x100ce9b0], eax
jmp 0x10021093
sub ebx, esi
add ebx, 0x5c
mov dword [0x100ce9b4], ebx
mov edi, dword [esp + 0x28]
mov eax, 2
sub eax, ebx
movzx esi, dl
add ecx, eax
mov dword [esp + 0x18], ecx
lea edx, [ecx + 0x9d55]
add edx, esi
cmp edx, ecx
jae 0x100210d5
lea eax, [esi + esi*2]
shl eax, 5
sub ecx, eax
mov eax, dword [esp + 0x18]
add eax, 0x9d55
add eax, ebx
sub ecx, eax
mov dword [esp + 0x18], eax
lea edx, [ecx - 0x4c]
mov ecx, eax
add edx, esi
jmp 0x10021106
cmp dword [esp + 0x34], 0x346
jne 0x100210f0
lea ebx, [ebx*2 - 0x6a2e]
lea edx, [edi + 0x9d55]
add edx, ebx
jmp 0x10021100
add ebx, 0xffff95d2
add ebx, edi
lea eax, [ebx + ebx]
sub edx, eax
sub edx, 8
mov dword [0x100ce9b4], ebx
cmp dword [esp + 0x3c], 1
mov dword [0x100ce980], edx
jb 0x100211cb
add ecx, 0xffff95d2
add ecx, ebx
sub dl, cl
mov dword [esp + 0x18], ecx
add dl, 2
mov byte [0x100ce986], dl
call fcn.100202f0
mov dh, byte [0x100ce994]
mov esi, 0x10bc
cmp word [0x100ce9b4], si
jne 0x1002115a
mov dl, byte [0x100ce980]
sub dl, dh
sub dl, byte [0x100ce986]
add dl, 2
jmp 0x10021160
mov dl, byte [0x100ce986]
mov ecx, dword [0x100ce9b4]
mov eax, 0x5c
mov ebx, dword [0x100ce9b0]
sub eax, ecx
dec dword [esp + 0x3c]
sub dl, 0x2e
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
add ecx, eax
mov dword [esp + 0x14], ebx
lea eax, [ebx + 0x9d55]
add dl, cl
mov ebx, dword [esp + 0x10]
add eax, edi
mov edi, dword [esp + 0x1c]
add ebx, 0xffff95d2
add ebx, edi
mov byte [esp + 0xf], dl
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], ebx
cmp word [0x100ce9b4], si
jne 0x100211c2
mov dl, al
sub dl, byte [esp + 0xf]
sub dl, dh
add dl, 2
mov esi, dword [esp + 0x28]
jmp 0x10020fb0
cmp edx, esi
jb 0x100211e0
sub word [0x100ce996], cx
lea eax, [esi + ecx]
add eax, eax
sub edx, eax
sub edx, 0x10
cmp edx, ecx
jbe 0x10021212
mov eax, dword [esp + 0x18]
sub esi, ecx
mov cl, bl
add edx, 0xffffffb4
sub cl, al
add edx, esi
mov eax, dword [esp + 0x14]
add cl, 0x65
add cl, dl
cmp edx, eax
jb 0x1002121a
sub word [0x100ce996], bx
add eax, ebx
add eax, eax
sub edx, eax
sub edx, 0x10
jmp 0x10021216
mov cl, byte [esp + 0xf]
mov eax, dword [esp + 0x14]
sub edx, ebx
movzx esi, cl
sub edx, edi
mov dword [esp + 0x34], 0x20d50db
add edx, 0xfffffff8
mov dword [0x100ce9b4], edx
cmp ebx, esi
jb 0x1002124c
sub dword [0x100ce9d8], eax
sbb dword [0x100ce9dc], 0
add eax, esi
add eax, eax
sub ebx, eax
sub ebx, 0x10
lea eax, [esi + esi*2]
mov dword [esp + 0x1c], edx
shl eax, 5
mov esi, ebx
sub esi, eax
movzx eax, word [0x100ce99c]
mov dword [esp + 0x20], esi
cmp eax, esi
ja 0x1002129a
mov eax, dword [esp + 0x10]
mov word [0x100ce990], ax
mov eax, esi
mov esi, dword [esp + 0x28]
sub edx, eax
add esi, 0xffffffb4
add edx, esi
lea eax, [eax*2 - 2]
mov dword [0x100ce9b4], edx
movzx esi, ax
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], edx
jmp 0x1002129e
mov esi, dword [esp + 0x10]
mov eax, dword [0x100cea50]
sub eax, dword [0x100ce9e8]
mov edi, dword [0x100cea54]
sbb edi, dword [0x100ce9ec]
mov dword [esp + 0x48], edi
mov edi, edx
cmp eax, 0x346
jne 0x100212e3
cmp dword [esp + 0x48], 0
jne 0x100212e3
add cl, cl
sub cl, 0x2e
movzx eax, cl
mov ecx, dword [esp + 0x20]
add ecx, 0x9d55
add ecx, eax
mov dword [esp + 0x18], ecx
jmp 0x100212ff
mov al, byte [esp + 0x20]
sub al, 0x2e
add al, cl
movzx ecx, al
mov eax, 0xfffffff8
add ecx, ecx
sub eax, ecx
add ebx, eax
mov dword [esp + 0x18], ebx
mov ecx, ebx
mov eax, dword [esp + 0x20]
mov bl, byte [esp + 0x14]
sub eax, 0x100ee238
add eax, str.2yRm
sub bl, cl
add eax, 0x10060550
add bl, 2
mov dword [esp + 0x20], eax
movzx eax, bl
cmp dword [esp + 0x20], eax
jb 0x10021335
sub dword [0x100ce9d8], ecx
sbb dword [0x100ce9dc], 0
mov dword [esp + 0x48], 0x9588
nop dword [eax]
inc dword [esp + 0x24]
mov bh, cl
movzx eax, si
mov esi, edi
movzx edi, word [0x100ce9b4]
lea eax, [eax + eax*2]
shl eax, 5
sub esi, eax
movzx eax, word [0x100ce99a]
sub edi, eax
mov dword [esp + 0x3c], edi
cmp edi, 0x346
mov edi, dword [esp + 0x1c]
jne 0x10021385
add bl, bl
lea esi, [ecx + 0x9d55]
sub bl, 0x2e
movzx eax, bl
add esi, eax
jmp 0x10021395
mov al, bh
sub al, 0x2e
add bl, al
movzx eax, bl
add eax, eax
sub esi, eax
sub esi, 8
mov byte [0x100ce986], bl
mov byte [esp + 0xf], bl
cmp esi, 0x27db
jbe 0x100213ea
mov eax, esi
sub eax, edi
add eax, 0x5c
cmp dword [esp + 0x3c], 0x346
movzx eax, ax
mov dword [esp + 0x10], eax
jne 0x100213d1
add bl, bl
lea esi, [ecx + 0x9d55]
sub bl, 0x2e
movzx eax, bl
add esi, eax
jmp 0x100213e0
sub bl, 0x2e
add bl, bh
movzx eax, bl
add eax, eax
sub esi, eax
sub esi, 8
mov byte [esp + 0xf], bl
mov byte [0x100ce986], bl
cmp dword [esp + 0x24], 0x5c
jge 0x1002148e
mov edx, dword [esp + 0x10]
movzx eax, word [0x100ce9a4]
add edx, 0xffff95d2
add edx, edi
sub eax, 1
je 0x10021421
mov al, byte [esp + 0xf]
sub bh, byte [esp + 0x24]
sub al, 0x4c
add bh, al
mov byte [0x100ce986], bh
jmp 0x1002142f
movzx eax, byte [esp + 0xf]
sub ecx, eax
add ecx, 0x5c
mov dword [esp + 0x24], ecx
movzx eax, dx
sub eax, edi
push 0x712
sub eax, 9
push 0x100df1b0
mov dword [0x100ce980], eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov bl, byte [0x100ce986]
mov esi, eax
mov edi, dword [esp + 0x18]
movzx eax, bl
cmp edi, eax
jb 0x1002147c
mov ecx, dword [esp + 0x24]
sub word [0x100ce996], cx
lea edx, [eax + ecx]
mov ecx, 0xfffffff0
add edx, edx
sub ecx, edx
add edi, ecx
mov dword [esp + 0x18], edi
mov ecx, dword [0x100ce9b0]
mov edx, dword [0x100ce9b4]
mov dword [esp + 0x14], ecx
jmp 0x10021492
mov ecx, dword [esp + 0x14]
movzx eax, word [0x100ce9a4]
mov dword [esp + 0x3c], eax
sub eax, 1
je 0x100214b7
mov eax, esi
add ecx, 0xffffffb4
sub eax, edx
add ecx, eax
mov dword [esp + 0x14], ecx
mov dword [0x100ce9b0], ecx
jmp 0x100214c4
mov edx, esi
sub edx, ecx
add edx, 0x5c
mov dword [0x100ce9b4], edx
movzx eax, word [0x100ce99a]
mov edi, edx
mov dword [esp + 0x38], ecx
movzx ecx, word [0x100ce9b4]
sub ecx, eax
cmp ecx, 0x346
mov ecx, dword [esp + 0x18]
jne 0x100214f8
add bl, bl
lea esi, [ecx + 0x9d55]
sub bl, 0x2e
movzx eax, bl
add esi, eax
jmp 0x10021507
sub bl, 0x2e
add bl, cl
movzx eax, bl
add eax, eax
sub esi, eax
sub esi, 8
mov eax, dword [esp + 0x40]
mov byte [0x100ce986], bl
mov dword [0x100ce980], esi
cmp eax, 9
jae 0x10021521
dec eax
mov dword [esp + 0x40], eax
sub dword [esp + 0x3c], 1
je 0x10021537
mov eax, esi
add ecx, 0xffffffb4
sub eax, edi
add ecx, eax
mov dword [esp + 0x18], ecx
jmp 0x10021546
mov edx, esi
sub edx, ecx
add edx, 0x5c
mov dword [0x100ce9b4], edx
mov edi, edx
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x30]
add eax, 0x5c
movzx eax, ax
mov dword [esp + 0x10], eax
cmp ax, word [esp + 0x48]
jbe 0x10021635
sub edi, eax
add edi, esi
movzx eax, di
mov edi, esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], edi
cmp dword [esp + 0x38], ecx
jne 0x1002160f
movzx edx, bl
cmp esi, edx
jb 0x100215a0
sub word [0x100ce996], cx
lea eax, [edx + ecx]
add eax, eax
sub esi, eax
mov eax, dword [esp + 0x10]
sub esi, 0x10
mov dword [0x100ce980], esi
movzx ecx, ax
call fcn.100207e0
movzx ecx, word [0x100ce99a]
mov edi, eax
movzx edx, word [0x100ce9b4]
mov bl, byte [0x100ce986]
sub edx, ecx
mov ecx, dword [esp + 0x18]
movzx esi, bl
cmp edx, 0x346
jne 0x100215e0
lea ecx, [ecx*2 - 0x6a2e]
lea edx, [ecx + 0x9d55]
add edx, esi
jmp 0x100215f6
mov edx, dword [0x100ce9b4]
add ecx, 0xffff95d2
add ecx, esi
lea eax, [ecx + ecx]
sub edx, eax
sub edx, 8
mov eax, 0xfffffff8
mov dword [esp + 0x18], ecx
sub eax, esi
sub eax, ecx
add edi, eax
mov dword [esp + 0x3c], edi
mov dword [0x100ce980], edi
mov eax, 0x10bc
mov esi, edi
cmp word [0x100ce9b4], ax
jne 0x10021635
movzx eax, word [0x100ce994]
mov esi, dword [esp + 0x3c]
sub edi, eax
sub edi, dword [esp + 0x18]
add edi, 2
jmp 0x10021639
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
cmp ecx, 9
jae 0x10021698
movzx eax, word [0x100ce99c]
cmp eax, esi
mov eax, dword [esp + 0x14]
ja 0x1002166f
mov word [0x100ce990], dx
add eax, 0xffffffb4
sub edx, esi
add eax, edx
lea edx, [esi*2 - 2]
mov dword [esp + 0x14], eax
mov dword [0x100ce9b0], eax
dec ecx
mov dword [esp + 0x30], ecx
mov ecx, 0x10bc
cmp word [0x100ce9b4], cx
jne 0x10021698
sub eax, dword [0x100ce994]
sub eax, dword [esp + 0x10]
add eax, 2
movzx ecx, ax
mov dword [esp + 0x10], ecx
jmp 0x1002169c
mov ecx, dword [esp + 0x10]
movzx eax, word [0x100ce9a4]
sub eax, 1
je 0x100216ba
movzx eax, cx
mov ecx, esi
sub ecx, eax
add ecx, 0xffffffb4
add edx, ecx
mov ecx, dword [esp + 0x10]
jmp 0x100216c8
mov eax, esi
sub eax, edx
add eax, 0x5c
movzx ecx, ax
mov dword [esp + 0x10], ecx
movzx eax, bl
mov dword [esp + 0x3c], eax
cmp word [0x100ce99c], ax
ja 0x100216fe
mov word [0x100ce990], cx
add edi, 0xffffffb4
movzx eax, bl
movzx ecx, cx
sub ecx, eax
mov eax, dword [esp + 0x3c]
add edi, ecx
lea eax, [eax*2 - 2]
movzx eax, ax
mov dword [esp + 0x10], eax
mov eax, 0x10bc
cmp word [0x100ce9b4], ax
jne 0x1002171a
movzx eax, word [0x100ce994]
sub esi, eax
sub esi, edi
lea edi, [esi + 2]
mov esi, dword [esp + 0x34]
lea eax, [edi + edi*2]
shl eax, 5
mov ecx, edx
sub ecx, eax
mov dword [esp + 0x28], ecx
test esi, esi
je 0x10021886
mov eax, dword [esp + 0x14]
sub edx, esi
add eax, 0xffffffb4
add eax, edx
mov dword [0x100ce9b4], eax
call fcn.100202f0
mov ecx, dword [esp + 0x28]
mov eax, 0x10bc
cmp word [0x100ce9b4], ax
jne 0x10021777
movzx eax, word [0x100ce994]
mov edx, ecx
sub edx, eax
sub edx, dword [0x100ce9b4]
add edx, 2
mov dword [0x100ce9b4], edx
jmp 0x1002177d
mov edx, dword [0x100ce9b4]
mov ebx, dword [esp + 0x2c]
mov edi, edx
dec esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x10]
lea eax, [ebx + 0x3327]
add eax, edi
add eax, ecx
mov dword [esp + 0x38], eax
cmp ebx, 5
jae 0x1002182f
movzx ecx, word [0x100ce9a4]
mov ebx, dword [0x100ce980]
mov eax, ecx
mov dword [esp + 0x3c], ecx
sub eax, 1
je 0x100217ce
mov eax, ebx
add esi, 0xffffffb4
sub eax, edi
add esi, eax
mov dword [esp + 0x10], esi
jmp 0x100217e4
movzx ecx, si
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x3c]
add edx, 0x5c
mov dword [0x100ce9b4], edx
mov edi, edx
dec dword [esp + 0x2c]
mov dword [esp + 0x1c], edi
sub ecx, 1
jne 0x10021804
sub ebx, dword [esp + 0x38]
lea edx, [ebx + 0x5c]
mov edi, edx
mov dword [0x100ce9b4], edx
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x2c]
mov bl, byte [0x100ce986]
movzx eax, si
lea eax, [eax + eax*2]
shl eax, 5
sub ecx, eax
mov dword [esp + 0x14], ecx
mov dword [0x100ce9b0], ecx
lea ecx, [edi - 4]
mov dword [esp + 0x18], ecx
jmp 0x10021340
movzx eax, word [0x100ce99c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
ja 0x1002186b
movzx eax, byte [0x100ce986]
mov bl, cl
mov word [0x100ce990], ax
lea ecx, [edi - 4]
mov eax, dword [0x100ce9b0]
add bl, bl
sub bl, 2
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
jmp 0x10021340
mov eax, dword [0x100ce9b0]
lea ecx, [edi - 4]
mov bl, byte [0x100ce986]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
jmp 0x10021340
mov esi, dword [esp + 0x44]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov eax, esi
sub eax, ecx
movzx ecx, word [0x100ce9b4]
movzx eax, ax
mov dword [esp + 0x30], eax
movzx eax, word [0x100ce99a]
sub ecx, eax
cmp ecx, 0x346
jne 0x100218c9
mov edx, dword [esp + 0x28]
add bl, bl
sub bl, 0x2e
add edx, 0x9d55
movzx eax, bl
add edx, eax
jmp 0x100218dc
mov ecx, dword [esp + 0x28]
sub cl, 0x2e
add bl, cl
movzx eax, bl
add eax, eax
sub edx, eax
sub edx, 8
mov ecx, dword [esp + 0x30]
mov eax, edx
sub eax, esi
movzx edi, cx
add eax, 0x9d57
mov byte [0x100ce986], bl
add eax, edi
mov esi, 0x100ce9f0
mov dword [0x100ce980], eax
nop
movzx eax, word [0x100ce998]
cmp edx, eax
je 0x1002192b
add word [esi], cx
mov al, 0xac
add cl, cl
sub esi, 2
sub al, cl
mov ecx, dword [esp + 0x30]
add bl, al
mov byte [0x100ce986], bl
cmp esi, 0x100ce994
jg 0x10021900
mov ecx, dword [0x100ce980]
mov esi, edi
sub esi, ecx
add edx, 0xffff9b8f
add esi, 0x5c
mov dword [0x100ce9b4], edx
cmp esi, edx
jb 0x10021961
mov ebx, dword [esp + 0x30]
lea eax, [edx + edi]
sub word [0x100ce996], bx
add eax, eax
mov edx, 0xfffffff0
sub edx, eax
add esi, edx
call fcn.10001990
movzx ecx, byte [0x100ce986]
mov dword [0x100ce9b4], eax
sub ecx, esi
mov eax, dword [0x100ce9b0]
add eax, 0xffffffb4
add eax, ecx
mov dword [0x100ce9b0], eax
lodsb al, byte [esi]
invalid