Function at 0x10080a40
Capabilities:
Get common file path

Disassembly:
sub esp, 0x30
mov dl, byte [0x100ced4a]
mov ecx, 0x21
movzx eax, dl
sub ecx, eax
movzx eax, word [0x100ced64]
sub ecx, dword [esp + 0x34]
push ebx
mov ebx, dword [esp + 0x20]
add ebx, ecx
movzx ecx, word [0x100ced78]
sub ecx, eax
mov dword [esp + 0x20], ebx
push esi
push edi
cmp ecx, 0x11f
jne 0x10080a8e
mov al, 0x7c
mov dword [esp + 0x10], 0xa7c
sub al, byte [esp + 0x40]
add dl, al
jmp 0x10080aae
mov al, byte [0x100ced70]
mov ecx, 0x54a
sub al, byte [esp + 0x40]
add dl, al
movzx eax, dl
sub cx, ax
add cx, cx
movzx eax, cx
mov dword [esp + 0x10], eax
movzx edi, byte [0x100ced7d]
mov ecx, 1
mov byte [esp + 0xf], dl
mov edx, dword [0x100ced8c]
mov esi, edx
sub esi, ebx
mov ebx, dword [0x100ced4c]
add esi, 2
cmp edx, edi
je 0x10080af5
movzx eax, byte [ecx + 0x100ced7c]
sub esi, eax
mov eax, esi
sub eax, ebx
add edx, eax
movzx eax, byte [0x100ced86]
cmp ebx, eax
je 0x10080af5
inc ecx
cmp ecx, 0x2d
jl 0x10080ad1
movzx eax, word [esp + 0x10]
mov ecx, dword [esp + 0x40]
sub ecx, eax
mov dword [0x100ced8c], edx
mov edx, dword [esp + 0x28]
add ecx, 0x5f
mov al, dl
mov dword [esp + 0x34], ecx
sub al, cl
mov dword [0x100d0330], 0x100d2a20
mov cl, byte [esp + 0xf]
add cl, al
push edx
mov byte [0x100ced4a], cl
call fcn.100807e0
mov edx, dword [0x100ced8c]
add esp, 4
mov esi, dword [esp + 0x34]
mov ecx, 0x17
movzx eax, ax
mov dword [esp + 0x10], eax
lea ebx, [ebx]
movzx eax, byte [0x100ced7c]
cmp esi, eax
je 0x10080b7c
add byte [ecx + 0x100ced7c], bl
mov eax, ebx
sub eax, edx
add esi, 9
sub ecx, 2
lea edx, [eax - 0x14cd1]
mov eax, edx
sub eax, ebx
add esi, eax
cmp ecx, 1
jg 0x10080b50
mov ebx, edx
mov dword [0x100ced8c], edx
sub ebx, esi
movzx esi, byte [0x100ced4a]
add ebx, 0x5f
sub esi, ebx
add esi, 2
cmp esi, edx
jb 0x10080bb5
movzx ecx, word [esp + 0x10]
mov al, byte [esp + 0x10]
sub esi, ecx
sub byte [0x100ced88], al
mov dword [0x100ced8c], esi
sub esi, ecx
add esi, 2
push esi
call fcn.10080670
movzx eax, ax
add esp, 4
mov dword [esp + 0x10], eax
mov al, bl
sub al, byte [0x100ced4a]
mov dx, word [esp + 0x10]
add al, 0x2f
mov byte [0x100ced4a], al
movzx eax, byte [0x100ced8c]
cmp ax, dx
ja 0x10080c06
mov eax, dword [0x100ced8c]
movzx ecx, dx
mov byte [0x100ced87], al
sub eax, ecx
lea esi, [eax*2 + 2]
mov dword [0x100ced8c], esi
sub esi, ecx
add esi, 2
push 0x206f
push 0x100b5650
movzx edi, dx
push 0x100d2a20
push edi
push esi
call fcn.10082920
movzx eax, byte [0x100ced4a]
mov ecx, ebx
mov edx, dword [0x100ced8c]
sub ecx, eax
add ebx, 0x17256
mov dword [esp + 0x28], 0x2211be2
add ecx, 0x5f
add esp, 0x14
add ebx, edx
mov dword [esp + 0x28], ecx
cmp byte [0x100ced89], 6
je 0x10080c63
mov eax, ecx
sub eax, edi
add eax, 9
add eax, edx
mov dword [0x100ced8c], eax
jmp 0x10080c6e
sub edi, edx
add ecx, 9
add ecx, edi
mov dword [esp + 0x28], ecx
mov al, cl
push ebp
sub al, bl
add byte [0x100ced4a], al
push ecx
call fcn.10080740
mov ebx, dword [0x100ced8c]
add esp, 4
movzx eax, ax
mov esi, ebx
mov dword [esp + 0x14], eax
mov bp, word [esp + 0x14]
mov dword [esp + 0x20], eax
lea edi, [ebx + 0x25]
mov eax, dword [esp + 0x2c]
add eax, 0x25
mov dword [esp + 0x38], 0xf
add eax, ebx
mov dword [esp + 0x30], 0x8d
mov cl, al
mov dword [esp + 0x28], 0x74
sub cl, byte [0x100ced4a]
add cl, 0x2f
mov dword [esp + 0x2c], 0
lea edx, [eax + 0x17256]
mov byte [esp + 0x13], cl
add eax, 0x17256
movzx ecx, cl
add eax, ebx
add edx, ecx
sub esi, eax
mov dword [esp + 0x1c], edx
add esi, 0x5f
mov dword [0x100ced4c], edx
add edi, eax
mov dword [esp + 0x34], esi
cmp ecx, ebx
jb 0x10080d1c
mov ebx, ecx
movzx eax, bp
sub ebx, eax
mov al, byte [esp + 0x14]
sub byte [0x100ced88], al
mov cl, bl
sub cl, al
add cl, 2
mov byte [esp + 0x13], cl
movzx ecx, byte [0x100ced8e]
movzx eax, byte [0x100ced84]
sub ecx, eax
cmp ecx, 0x11f
jne 0x10080d3f
add edi, 9
mov eax, edi
sub eax, edx
add ebx, eax
jmp 0x10080d56
movzx eax, byte [0x100ced8a]
mov ecx, 0x21
sub eax, edx
add ebx, eax
lea eax, [ebx + ebx]
sub ecx, eax
add edi, ecx
mov ch, byte [esp + 0x13]
mov eax, ebx
sub eax, edi
mov dword [0x100ced8c], ebx
add eax, 0x5f
mov dword [esp + 0x24], eax
movzx eax, byte [0x100ced81]
cmp eax, 0x1326
jne 0x10080d8f
movzx eax, byte [0x100ced80]
sub ebx, eax
add ch, 9
mov dword [0x100ced8c], ebx
mov byte [esp + 0x13], ch
mov esi, dword [esp + 0x24]
mov edi, 0x17
jmp 0x10080da0
movzx eax, byte [0x100ced7c]
cmp esi, eax
je 0x10080dd2
add byte [edi + 0x100ced7c], dl
mov eax, edx
sub eax, ebx
sub edi, 2
lea ebx, [eax - 0x14cd1]
mov eax, ebx
mov dword [0x100ced8c], ebx
sub eax, edx
add eax, 9
add esi, eax
cmp edi, 1
jg 0x10080da0
mov cl, byte [0x100ced89]
mov eax, esi
mov dword [esp + 0x24], esi
lea edx, [eax + eax]
sub edx, ebx
mov dword [esp + 0x24], edx
cmp cl, 6
je 0x10080e0b
movzx ecx, ch
add ebx, 9
movzx eax, bp
sub ecx, eax
add ebx, ecx
mov ch, byte [esp + 0x13]
mov cl, byte [0x100ced89]
mov dword [0x100ced8c], ebx
jmp 0x10080e15
mov al, byte [esp + 0x14]
sub al, bl
add al, 9
add ch, al
mov esi, dword [esp + 0x34]
movzx edi, bp
lea esp, [esp]
movzx eax, ch
add esi, 9
sub eax, edx
add esi, eax
mov al, byte [0x100ced8c]
movzx eax, al
cmp ax, bp
ja 0x10080e5b
mov al, bl
mov byte [0x100ced87], bl
sub al, byte [esp + 0x14]
add al, 2
movzx eax, al
sub eax, edi
add ebx, eax
mov ch, bl
mov dword [0x100ced8c], ebx
sub ch, byte [esp + 0x14]
add ch, 2
mov edx, ebx
sub edx, dword [esp + 0x24]
sub edx, 0x14cd1
cmp esi, edx
jb 0x10080e75
mov edx, esi
sub edx, ebx
sub byte [0x100ced88], bl
cmp edx, edi
jbe 0x10080eab
add edx, edx
sub edx, ebx
add edx, 9
test bp, bp
jne 0x10080eab
movzx eax, byte [0x100ced8c]
cmp eax, ebx
ja 0x10080eab
mov eax, dword [esp + 0x1c]
mov byte [0x100ced87], al
sub eax, ebx
lea eax, [eax*2 + 2]
mov dword [esp + 0x1c], eax
mov dword [0x100ced4c], eax
add edx, edx
movzx eax, ch
sub edx, ebx
add eax, 0x17256
add edx, 9
add eax, edx
mov dword [esp + 0x24], eax
cmp eax, edx
jae 0x10080ef3
mov al, dl
add edx, edx
sub al, ch
sub edx, ebx
add al, 0x2f
add edx, 9
mov cl, al
mov byte [esp + 0x13], cl
movzx eax, cl
mov ecx, 0x21
sub ecx, eax
mov eax, dword [esp + 0x24]
sub ecx, edx
add eax, ecx
mov ch, byte [esp + 0x13]
mov dword [esp + 0x24], eax
jmp 0x10080f1c
cmp cl, 6
je 0x10080f07
sub eax, edi
add eax, 9
add ebx, eax
mov dword [0x100ced8c], ebx
jmp 0x10080f18
mov esi, dword [esp + 0x24]
mov eax, edi
sub eax, ebx
add esi, 9
add esi, eax
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x18], 1
jb 0x10080fb7
sub ebx, edx
sub ebx, 0x14cd1
mov ecx, ebx
mov bl, al
sub bl, cl
mov dword [esp + 0x1c], ecx
mov byte [0x100ced4a], bl
call fcn.10082430
mov ch, byte [0x100ced4a]
movzx eax, ch
cmp dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
jb 0x10080f5f
sub byte [0x100ced88], al
mov ch, bl
mov ebx, dword [0x100ced8c]
mov esi, ebx
dec dword [esp + 0x18]
sub esi, edi
mov cl, byte [0x100ced89]
add esi, 0x5f
lea edx, [ebx + 0x25]
add edx, eax
movzx eax, byte [0x100ced81]
mov dword [esp + 0x24], edx
cmp eax, 0x1326
je 0x10080fa0
mov edx, dword [0x100ced4c]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x24]
jmp 0x10080e20
sub ch, byte [0x100ced80]
add esi, 9
mov eax, dword [0x100ced4c]
mov dword [esp + 0x1c], eax
jmp 0x10080e20
movzx eax, byte [0x100ced8c]
mov dword [esp + 0x3c], eax
cmp eax, edx
ja 0x10080fd2
mov byte [0x100ced87], ch
sub ch, dl
inc ch
add ch, ch
movzx esi, ch
mov eax, esi
sub eax, edx
add eax, 2
mov dword [esp + 0x24], eax
cmp eax, edx
jbe 0x10081014
mov eax, 0x21
sub eax, esi
sub eax, edx
add edx, 0x25
add dword [esp + 0x24], eax
add edx, ebx
mov al, byte [esp + 0x24]
sub al, dl
add ch, al
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x1c]
jb 0x10081014
sub eax, ebx
sub byte [0x100ced88], bl
mov dword [esp + 0x1c], eax
movzx eax, byte [0x100ced81]
cmp eax, 0x1326
jne 0x1008102e
movzx eax, byte [0x100ced80]
sub ebx, eax
add edx, 9
mov bp, word [0x100ced68]
mov eax, ebx
sub eax, edi
mov dword [esp + 0x34], 0x2211be2
add eax, 0x5f
sub edx, ebx
mov dword [esp + 0x18], eax
mov esi, 0x100ced56
sub eax, edx
mov dword [esp + 0x24], edx
add ebx, eax
mov dword [0x100ced8c], ebx
lea ecx, [ecx]
movzx eax, ch
cmp ax, word [0x100ced56]
je 0x1008108d
movzx eax, word [esi]
sub edx, eax
mov al, dl
sub al, byte [esp + 0x1c]
add ch, al
movzx eax, bp
cmp dword [esp + 0x1c], eax
je 0x1008108d
add esi, 2
cmp esi, 0x100cedae
jl 0x10081060
mov esi, dword [esp + 0x18]
mov cl, dl
mov bp, word [esp + 0x14]
sub cl, ch
add cl, 0x2f
mov dword [esp + 0x24], edx
mov byte [esp + 0x13], cl
mov byte [0x100ced4a], cl
cmp dword [esp + 0x3c], esi
ja 0x100810e5
mov ebx, dword [esp + 0x20]
mov al, byte [esp + 0x14]
sub ebx, esi
mov byte [0x100ced87], al
lea eax, [ebx*2 + 2]
movzx ebx, ax
mov bp, bx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebx
movzx edi, bp
mov ebx, edi
sub ebx, esi
add ebx, 2
mov dword [0x100ced8c], ebx
movzx eax, word [0x100ced74]
cmp eax, esi
ja 0x10081119
movzx eax, cl
mov word [0x100ced6a], ax
mov eax, dword [esp + 0x18]
sub cl, al
inc cl
add cl, cl
movzx edx, cl
sub edx, eax
mov byte [esp + 0x13], cl
add edx, 2
mov byte [0x100ced4a], cl
mov dword [esp + 0x24], edx
movzx eax, cl
mov ecx, 0x21
sub ecx, eax
mov eax, dword [esp + 0x1c]
sub ecx, edx
add eax, ecx
mov dword [esp + 0x1c], eax
mov dword [0x100ced4c], eax
movzx eax, word [0x100ced74]
cmp eax, edx
mov ah, byte [esp + 0x13]
ja 0x10081160
movzx eax, ah
mov word [0x100ced6a], ax
mov ah, byte [esp + 0x13]
sub ah, dl
inc ah
add ah, ah
mov byte [0x100ced4a], ah
mov byte [esp + 0x13], ah
mov esi, dword [esp + 0x2c]
sub edi, ebx
inc esi
cmp byte [0x100ced89], 6
mov dword [esp + 0x2c], esi
lea ecx, [edi + 2]
mov dword [esp + 0x18], ecx
je 0x1008118f
mov al, cl
sub al, dl
add al, 9
add ah, al
mov byte [esp + 0x13], ah
mov byte [0x100ced4a], ah
jmp 0x100811a9
mov esi, dword [esp + 0x18]
mov ecx, edx
movzx eax, ah
add esi, 9
sub ecx, eax
add esi, ecx
mov dword [esp + 0x18], esi
mov ecx, esi
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
cmp ecx, 0xf45a
jbe 0x100811c6
mov eax, ecx
sub eax, ebx
add edi, eax
mov dword [esp + 0x20], edi
mov bp, di
mov dword [esp + 0x14], edi
movzx eax, byte [0x100ced8c]
cmp eax, ebx
ja 0x100811ef
mov byte [0x100ced87], dl
sub edx, ebx
lea edx, [edx*2 + 2]
mov eax, edx
mov dword [esp + 0x24], edx
sub eax, ebx
add eax, 2
mov dword [esp + 0x18], eax
cmp esi, 0x5e
jge 0x10081266
sub edi, ebx
push 0x86f
push 0x100d0fc8
lea eax, [edi*2 + 2]
movzx edi, ax
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov edx, dword [esp + 0x24]
mov esi, eax
mov al, byte [0x100ced4a]
mov bp, di
mov ebx, dword [0x100ced8c]
movzx ecx, al
mov dword [esp + 0x18], esi
mov byte [esp + 0x13], al
cmp edx, ecx
jb 0x1008125e
mov ecx, dword [esp + 0x2c]
mov al, dl
sub byte [0x100ced88], cl
sub al, cl
movzx edx, al
sub edx, ecx
mov byte [esp + 0x13], al
add edx, 2
mov byte [0x100ced4a], al
mov dword [esp + 0x24], edx
mov ecx, dword [0x100ced4c]
jmp 0x1008126a
mov ecx, dword [esp + 0x1c]
cmp byte [0x100ced89], 6
jne 0x10081286
mov eax, ebx
sub eax, ecx
mov ecx, dword [esp + 0x18]
add ecx, 9
add ecx, eax
mov dword [esp + 0x18], ecx
jmp 0x1008128a
mov ecx, dword [esp + 0x18]
movzx eax, byte [0x100ced81]
cmp eax, 0x1326
jne 0x100812b2
mov al, byte [esp + 0x13]
sub al, byte [0x100ced80]
add ecx, 9
mov byte [esp + 0x13], al
mov byte [0x100ced4a], al
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x30]
cmp esi, 6
jae 0x100812e5
movzx eax, bp
dec esi
sub eax, ebx
mov dword [esp + 0x30], esi
add eax, 9
add ecx, eax
mov eax, esi
sub eax, edi
mov dword [esp + 0x18], ecx
sub eax, 0x4cd1
movzx edi, ax
mov dword [esp + 0x20], edi
mov bp, di
mov dword [esp + 0x14], edi
cmp byte [0x100ced89], 6
je 0x10081313
mov ah, byte [esp + 0x13]
mov al, cl
sub al, dl
add edx, 9
add al, 9
add ah, al
mov byte [esp + 0x13], ah
mov byte [0x100ced4a], ah
mov eax, ecx
sub eax, ebx
add edx, eax
mov dword [esp + 0x24], edx
jmp 0x1008132f
movzx eax, byte [esp + 0x13]
mov ecx, edx
mov esi, dword [esp + 0x18]
sub ecx, eax
add esi, 0x12
mov eax, ebx
add ecx, esi
sub eax, edx
add ecx, eax
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x28]
movzx eax, bp
sub esi, eax
mov eax, 0x246d
add esi, 0x5f
mov dword [0x100ced4c], esi
cmp bp, ax
jbe 0x1008138e
mov eax, ecx
sub eax, ebx
add edi, eax
mov dword [esp + 0x20], edi
mov bp, di
mov dword [esp + 0x14], edi
cmp esi, edx
jne 0x1008138e
movzx eax, bp
push eax
call fcn.10080670
mov cl, byte [0x100ced4a]
add esp, 4
mov edx, dword [esp + 0x24]
mov ebx, dword [0x100ced8c]
mov byte [esp + 0x13], cl
movzx ecx, cl
sub ecx, edx
add ecx, 9
add ecx, eax
mov dword [esp + 0x18], ecx
mov al, byte [0x100ced8c]
movzx eax, al
cmp ax, bp
ja 0x100813be
movzx eax, bp
mov byte [0x100ced87], bl
sub ebx, eax
lea ebx, [ebx*2 + 2]
mov ecx, ebx
mov dword [0x100ced8c], ebx
sub ecx, eax
add ecx, 2
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x28], 0xf
jae 0x10081522
movzx ecx, byte [0x100ced8e]
movzx eax, byte [0x100ced84]
sub ecx, eax
cmp ecx, 0x11f
jne 0x100813f7
mov ecx, dword [esp + 0x18]
add ecx, 9
mov eax, ecx
sub eax, ebx
add edi, eax
mov dword [esp + 0x14], edi
mov bp, di
jmp 0x10081420
mov al, byte [0x100ced8a]
movzx eax, al
sub ax, bx
add bp, ax
mov eax, 0x21
movzx ecx, bp
add ecx, ecx
mov word [esp + 0x14], bp
mov edi, dword [esp + 0x14]
sub eax, ecx
mov ecx, dword [esp + 0x18]
add ecx, eax
movzx eax, byte [0x100ced8c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], ecx
cmp eax, ecx
ja 0x10081455
mov byte [0x100ced87], bl
sub ebx, ecx
lea ebx, [ebx*2 + 2]
mov esi, ebx
mov dword [0x100ced8c], ebx
sub esi, ecx
add esi, 2
mov dword [0x100ced4c], esi
mov al, byte [0x100ced89]
dec dword [esp + 0x28]
cmp al, 6
je 0x1008147b
sub esi, dword [esp + 0x28]
add edi, 9
add edi, esi
mov dword [esp + 0x20], edi
mov bp, di
mov dword [esp + 0x14], edi
jmp 0x10081527
mov ecx, dword [esp + 0x28]
movzx eax, bp
sub ecx, eax
lea eax, [ecx + 9]
mov ecx, dword [esp + 0x18]
add eax, esi
mov dword [0x100ced4c], eax
movzx eax, bp
add ecx, 9
sub eax, ebx
add ecx, eax
mov dword [esp + 0x18], ecx
movzx eax, byte [0x100ced81]
cmp eax, 0x1326
jne 0x100814c8
movzx eax, byte [0x100ced80]
sub bp, ax
add edx, 9
mov word [esp + 0x14], bp
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
cmp byte [0x100ced89], 6
jne 0x100814de
mov eax, ebx
add ecx, 9
sub eax, edx
add ecx, eax
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x34]
mov ecx, 0x21
sub ecx, ebx
mov dword [esp + 0x24], ecx
test esi, esi
je 0x100815f0
sub ebx, esi
mov dword [0x100ced4c], ebx
call fcn.10082430
cmp byte [0x100ced89], 6
mov edx, dword [esp + 0x24]
movzx edi, bp
je 0x10081548
mov eax, dword [0x100ced8c]
mov ebx, edx
sub ebx, edi
add eax, 9
add ebx, eax
jmp 0x1008155b
mov al, byte [0x100ced89]
cmp al, 6
je 0x10081492
movzx eax, bp
sub ecx, eax
add ecx, 9
add ebx, ecx
mov ecx, dword [esp + 0x18]
mov dword [0x100ced8c], ebx
jmp 0x100814a0
mov ebx, dword [0x100ced8c]
mov eax, edi
sub eax, ebx
add edx, 9
add edx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x38]
dec esi
mov dword [esp + 0x34], esi
lea ecx, [eax + 0x17256]
add ecx, edx
mov dword [esp + 0x1c], ecx
mov dword [0x100ced4c], ecx
cmp eax, 4
jae 0x100815be
mov esi, dword [esp + 0x18]
dec eax
mov dword [esp + 0x38], eax
cmp esi, edx
jb 0x10081596
mov edx, esi
sub edx, ebx
sub byte [0x100ced88], bl
mov dword [esp + 0x24], edx
add eax, 0x17256
add eax, edi
mov dword [esp + 0x1c], eax
mov dword [0x100ced4c], eax
mov ah, byte [0x100ced4a]
mov ebx, 0x64
sub ebx, edx
mov dword [0x100ced8c], ebx
jmp 0x1008115c
movzx eax, byte [0x100ced81]
cmp eax, 0x1326
jne 0x100815a6
mov ah, byte [0x100ced4a]
mov ebx, 0x64
sub ah, byte [0x100ced80]
sub ebx, edx
mov byte [0x100ced4a], ah
mov dword [0x100ced8c], ebx
jmp 0x1008115c
mov eax, dword [esp + 0x44]
mov dh, byte [esp + 0x13]
sub eax, ecx
add eax, 0x5f
movzx eax, ax
mov dword [esp + 0x14], eax
movzx eax, byte [0x100ced81]
cmp eax, 0x1326
jne 0x10081621
sub dh, byte [0x100ced80]
add ebx, 9
mov byte [0x100ced4a], dh
mov esi, dword [esp + 0x18]
mov eax, ebx
sub eax, dword [esp + 0x44]
add eax, ecx
lea edi, [esi + 0x14cda]
mov si, word [esp + 0x14]
add edi, eax
mov al, byte [0x100ced8c]
movzx eax, al
cmp ax, si
ja 0x1008166e
mov dl, byte [esp + 0x14]
mov al, bl
sub al, dl
mov byte [0x100ced87], bl
add al, 2
movzx ecx, al
movzx eax, si
sub ecx, eax
add ebx, ecx
mov dh, bl
sub dh, dl
add dh, 2
mov byte [0x100ced4a], dh
lea ecx, [edi + edi]
mov eax, 0x466
sub ecx, ebx
add ecx, 9
sub eax, ecx
mov dword [esp + 0x44], ecx
movzx eax, ax
movzx edi, ax
mov esi, edi
mov dword [esp + 0x14], eax
movzx eax, byte [0x100ced84]
sub esi, ecx
movzx ecx, byte [0x100ced8e]
sub ecx, eax
mov dword [esp + 0x2c], esi
cmp ecx, 0x11f
jne 0x100816c2
add esi, 9
mov eax, esi
mov dword [esp + 0x2c], esi
sub eax, edi
add ebx, eax
mov dword [0x100ced8c], ebx
mov ebx, esi
jmp 0x100816e3
movzx eax, byte [0x100ced8a]
mov ecx, 0x21
sub eax, edi
add ebx, eax
mov dword [0x100ced8c], ebx
lea eax, [ebx + ebx]
mov ebx, dword [esp + 0x2c]
sub ecx, eax
add ebx, ecx
movzx eax, dh
cmp ebx, eax
mov eax, dword [esp + 0x44]
jb 0x10081705
sub word [0x100ced6c], ax
sub bl, al
mov byte [0x100ced4a], bl
movzx ebx, bl
sub ebx, eax
add ebx, 2
push dword [0x100d0330]
push eax
call fcn.10001a20
sub bl, byte [0x100ced4a]
add esp, 8
add bl, 0x2f
mov dword [0x100ced8c], eax
mov byte [0x100ced4a], bl
mov esp, 0x8b2f9b01
pop esp
and al, 0x44
mov edx, 1
movzx ebp, byte [0x100ced7d]
mov ecx, dword [0x100ced8c]
lea esi, [ebx + 0x25]
mov bl, byte [0x100ced86]
add esi, edi
lea ecx, [ecx]
cmp ecx, ebp
je 0x10081779
movzx eax, byte [edx + 0x100ced7c]
sub esi, eax
mov eax, esi
sub eax, edi
add ecx, eax
movzx eax, bl
mov dword [0x100ced8c], ecx
cmp word [esp + 0x14], ax
je 0x10081779
inc edx
cmp edx, 0x2d
jl 0x10081750
mov ebx, dword [esp + 0x44]
mov eax, ebx
sub eax, esi
add eax, 0x5f
movzx eax, ax
mov dword [esp + 0x14], eax
movzx eax, byte [0x100ced8c]
mov dx, word [esp + 0x14]
pop ebp
cmp ax, dx
ja 0x100817b5
mov byte [0x100ced87], cl
movzx eax, dx
sub ecx, eax
lea ecx, [ecx*2 + 2]
mov dword [0x100ced8c], ecx
movzx edi, dx
lea esi, [ebx + 0x25]
mov bl, byte [esp + 0x10]
add esi, edi
mov edx, 0x17
jmp 0x100817d0
movzx eax, byte [0x100ced7c]
cmp esi, eax
je 0x10081802
add byte [edx + 0x100ced7c], bl
mov eax, edi
sub eax, ecx
sub edx, 2
lea ecx, [eax - 0x14cd1]
mov eax, ecx
mov dword [0x100ced8c], ecx
sub eax, edi
add eax, 9
add esi, eax
cmp edx, 1
jg 0x100817d0
movzx eax, byte [0x100ced4a]
pop edi
pop esi
pop ebx
add esp, 0x30
ret