Function at 0x1001d9de
Capabilities:
Check os version
Delete file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1008dc57
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c0
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0xc], 0x90c4d8e5
lea ecx, [esp + 0xe0]
push 4
mov dword [esp + 0x28], edi
call fcn.1001ae23
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 0x1d4], ebx
inc ecx
mov dword [esp + 0x40], ebx
jmp 0x1001da44
mov eax, dword [esp + 0x40]
mov dword [esp + eax*4 + 0x4c], 0xdf75
inc dword [esp + 0x40]
cmp dword [esp + 0x40], ecx
jl 0x1001da34
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0x44]
push eax
push ebx
call fcn.100229e7
add esp, 0xc
mov dword [esp + 0xc], ebx
push 2
pop esi
cmp dword [esp + 0xc], ebx
jl 0x1001db9b
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x20], ebx
mov dword [esp + 0x7c], 0x889a278c
mov dword [esp + 0x14], ebx
jmp 0x1001db87
mov dword [esp + 0x18], 0x478144ad
mov dword [esp + 0x2c], 0xfffffff9
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebx
jl 0x1001db70
mov dword [esp + 0x48], 0xdcc590f0
lea ecx, [esp + 0x128]
mov dword [esp + 0x10], 0xad7d711e
push esi
call fcn.1001ae23
mov byte [esp + 0x1d4], 1
mov dword [esp + 0x10], ebx
jmp 0x1001daed
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x128]
mov dword [eax + ecx*4], 0xcacff8ee
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001dad7
push ebx
lea eax, [esp + 0x80]
push eax
push 0x6249
push 0x247f
call fcn.100214d7
mov eax, dword [esp + 0x3c]
add esp, 0x10
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + eax*4 + 0x4c]
mov eax, dword [esp + 0x128]
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + eax*4 + 0x4c]
mov eax, dword [esp + 0x14]
sub edx, ecx
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x4c]
cmp edx, eax
setne cl
sub ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0xe0]
mov dword [eax], ecx
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x128]
mov byte [esp + 0x1d4], bl
call fcn.1001aea5
dec dword [esp + 0x18]
jns 0x1001daac
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1001db83
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jle 0x1001da8e
dec dword [esp + 0xc]
jns 0x1001da71
or dword [esp + 0x1d4], 0xffffffff
lea ecx, [esp + 0xe0]
call fcn.1001aea5
push esi
lea ecx, [esp + 0x164]
call fcn.1001ae23
mov dword [esp + 0x14], 0x9bdba76a
mov dword [esp + 0x48], 0xadae8c9f
mov dword [esp + 0x14], ebx
jmp 0x1001dbe8
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
mov dword [eax + ecx*4], 7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x1001dbd2
xor eax, eax
mov dword [esp + 0x14], ebx
inc eax
jmp 0x1001dc07
mov dword [esp + 0x20], 0x7f2fb5a5
dec dword [esp + 0x20]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], eax
jle 0x1001dbf7
lea ecx, [esp + 0x160]
call fcn.1001aea5
cmp dword [edi + 0x10], ebx
jne 0x1001dc25
xor al, al
jmp 0x1001eb50
mov dword [esp + 0x10], 0xcea5d6c0
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 5
jle 0x1001dc78
xor ecx, ecx
inc ecx
mov dword [esp + 0x2c], 0xdd03248c
mov dword [esp + 0x14], ebx
jmp 0x1001dc5c
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x8c], 0xfffffff6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x1001dc49
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x8c], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 5
jg 0x1001dc3b
mov dword [esp + 0x10], 0xffffffe6
jmp 0x1001dd37
mov dword [esp + 0x70], 0xef307d7
lea ecx, [esp + 0x11c]
push 3
call fcn.1001ae23
push 0xc7c
push 0x4e78
push 0xa62
lea eax, [esp + 0x168]
mov dword [esp + 0x1e0], esi
push eax
push 0x41ae
lea eax, [esp + 0x130]
push eax
push 0x7992
push 0x7415
push 0x76ca
push ebx
call fcn.100221ea
add esp, 0x28
cmp dword [esp + 0x70], ebx
je 0x1001dd04
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1001dd1f
push ebx
push 0x23fc
push 0x125
call fcn.10020df4
add esp, 0xc
jmp 0x1001dd1f
lea eax, [esp + 0x70]
mov dword [esp + 0x2c], 1
push eax
push ebx
call fcn.10020a06
pop ecx
pop ecx
cmp dword [esp + 0x2c], ebx
jne 0x1001dd44
or dword [esp + 0x1d4], 0xffffffff
lea ecx, [esp + 0x11c]
call fcn.1001aea5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xb
jne 0x1001dc85
jmp 0x1001dd58
or dword [esp + 0x1d4], 0xffffffff
lea ecx, [esp + 0x11c]
call fcn.1001aea5
xor ecx, ecx
inc ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x14], ebx
jmp 0x1001dd75
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x54], 0xb0647dc4
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x1001dd65
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1001dd8c
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [esp + 0x14], ebx
jmp 0x1001df75
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 0xfffffff7
mov dword [esp + 0x48], esi
mov dword [esp + 0xc], ebx
jmp 0x1001de77
mov eax, dword [esp + 0xc]
xor ecx, ecx
push 2
mov esi, dword [esp + eax*4 + 0x58]
mov eax, dword [esp + 0x10]
imul esi, dword [esp + eax*4 + 0x58]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
dec edx
cmp edx, eax
setg cl
add esi, ecx
sub esi, dword [esp + 0x18]
mov dword [esp + 0x14], esi
mov dword [esp + 0x14], ebx
pop esi
cmp dword [esp + 0x10], ebx
jg 0x1001de73
mov dword [esp + 0x18], 0x3c67ee39
lea ecx, [esp + 0xbc]
push esi
call fcn.1001ae23
mov dword [esp + 0x18], ebx
jmp 0x1001de18
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xbc]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x1001de05
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebx
jl 0x1001de5e
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x2c], ebx
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov dword [edx + 4], 0x5fff839e
mov eax, dword [esp + eax*4 + 0x54]
test eax, eax
setne cl
xor eax, eax
cmp ecx, 0xbb9
sete al
mov dword [esp + 0x2c], eax
dec dword [esp + 0x18]
jns 0x1001de2f
lea ecx, [esp + 0xbc]
call fcn.1001aea5
inc dword [esp + 0x10]
jmp 0x1001dde0
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jle 0x1001ddae
mov dword [esp + 0xc], ebx
jmp 0x1001df66
mov dword [esp + 0x2c], 0x68927649
mov dword [esp + 0x10], ebx
jmp 0x1001df57
mov dword [esp + 0x18], 9
lea ecx, [esp + 0x104]
mov dword [esp + 0x20], 1
push 3
call fcn.1001ae23
mov dword [esp + 0x18], ebx
jmp 0x1001ded5
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x104]
mov dword [eax + ecx*4], 0xdc4b54c5
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x1001debf
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x14], ebx
je 0x1001df0a
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x48]
imul ecx, eax
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x104]
setne dl
mov dword [eax], edx
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1001df47
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [esp + 0x104]
call fcn.1001aea5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 9
jle 0x1001de9b
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jge 0x1001de8a
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x19
jl 0x1001dd95
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x134]
push 1
mov dword [eax], ebx
mov dword [esp + 0x14], 6
mov dword [esp + 0x10], 0x90e69cd1
call fcn.1001ae23
push 3
pop ecx
push 0xfffffffffffffffe
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x14], ebx
pop edx
jmp 0x1001dfc3
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x58], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001dfb7
xor edx, edx
mov dword [esp + 0x10], ebx
inc edx
jmp 0x1001dfe8
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x134]
mov dword [eax + ecx*4], 0x8fb5c4ce
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001dfd2
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], ebx
jl 0x1001e12d
push 0xfffffffffffffffe
pop edi
mov dword [esp + 0x14], 0x76ff55e0
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], ebx
jl 0x1001e0ef
mov dword [esp + 0x20], 0x51c8
mov dword [esp + 0x18], 0xa0e1c2a9
cmp dword [esp + 0x60], ebx
je 0x1001e037
mov eax, dword [esp + 0x10]
mov ecx, edx
cmp dword [esp + eax*4 + 0x58], ebx
jne 0x1001e039
mov ecx, ebx
mov eax, dword [esp + 0x10]
cmp ecx, dword [esp + eax*4 + 0x58]
jge 0x1001e047
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
xor edx, edx
push 1
mov eax, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + 0x60]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setge dl
mov dword [esp + eax*4 + 0x5c], edx
xor eax, eax
cmp edx, 0xfffffff9
setg al
xor edx, edx
cmp eax, 0xb060
mov eax, dword [esp + 0x24]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
cmp eax, ecx
setne dl
sub edx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp edi, edx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [esp + 0x14]
setne dl
xor ecx, ecx
cmp edx, eax
pop edx
setle cl
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x134]
mov dword [eax], ecx
mov eax, dword [esp + 0x18]
dec dword [esp + 0x14]
jns 0x1001e015
mov dword [esp + 0x14], ebx
jmp 0x1001e119
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], ebx
jl 0x1001e115
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x58], ecx
dec dword [esp + 0xc]
jns 0x1001e0ff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jle 0x1001e0f5
dec dword [esp + 0x10]
jns 0x1001dfff
mov edi, dword [esp + 0x24]
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1001e164
push 0x6f0c
push 0xf2c
push 0x1bfa
push 0x5ae2
push 0x3c58
push 0x647f
push 0xac0
push ebx
call fcn.10021aac
add esp, 0x20
or dword [esp + 0x1d4], 0xffffffff
lea ecx, [esp + 0x134]
call fcn.1001aea5
push 1
lea ecx, [esp + 0xd8]
call fcn.1001ae23
mov dword [esp + 0x20], 0xf844ba92
xor edx, edx
mov dword [esp + 0x24], 0xffffffff
inc edx
mov dword [esp + 0x10], ebx
jmp 0x1001e1b5
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xd4]
mov dword [eax + ecx*4], 0xae8c9f36
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001e19f
mov dword [esp + 0x10], ebx
jmp 0x1001e1d0
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1ac], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001e1c1
mov esi, dword [esp + 0xd4]
xor ecx, ecx
cmp dword [esi], ecx
sete cl
xor eax, eax
sub ecx, dword [esi]
cmp ecx, dword [esi]
setne al
xor ecx, ecx
cmp dword [esi], eax
setl cl
xor eax, eax
cmp ecx, dword [esi]
setge al
xor ecx, ecx
sub eax, dword [esi]
cmp eax, dword [esi]
setne cl
xor eax, eax
cmp ecx, dword [esi]
setne al
cmp eax, dword [esi]
jle 0x1001e217
cmp dword [esi], 0
mov ecx, ebx
je 0x1001e219
mov ecx, edx
xor eax, eax
cmp dword [esi], ecx
setl al
xor ecx, ecx
cmp eax, 0xffffffff
setg cl
xor edx, edx
cmp ecx, dword [esi]
setl dl
xor eax, eax
sub edx, dword [esi]
cmp edx, dword [esi]
setne al
xor ecx, ecx
cmp eax, dword [esi]
setg cl
xor eax, eax
cmp ecx, 0x2d29
mov ecx, dword [esi]
setne al
xor edx, edx
imul eax, eax, 0x7d41
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add eax, ecx
cmp ecx, eax
lea ecx, [esp + 0xd4]
setne dl
mov dword [esp + 0x1b0], edx
mov dword [esp + 0x24], edx
call fcn.1001aea5
cmp dword [edi + 0x14], 0x10
jb 0x1001e284
mov esi, dword [edi]
jmp 0x1001e286
mov esi, edi
cmp dword [edi + 0x14], 0x10
jb 0x1001e290
mov ecx, dword [edi]
jmp 0x1001e292
mov ecx, edi
mov eax, dword [edi + 0x10]
add eax, ecx
cmp esi, eax
je 0x1001ea37
mov dword [esp + 0x3c], 0x46db5052
lea ecx, [esp + 0x9c]
mov dword [esp + 0x34], 0xfffffff6
push 1
call fcn.1001ae23
xor edx, edx
mov dword [esp + 0x1d4], 4
mov dword [esp + 0x18], ebx
inc edx
jmp 0x1001e2e3
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x9c]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x1001e2d1
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x40]
push eax
push ebx
call fcn.10020ae1
add esp, 0xc
mov dword [esp + 0x34], ebx
jmp 0x1001e4cc
push 2
lea ecx, [esp + 0x114]
call fcn.1001ae23
lea eax, [esp + 0x110]
mov byte [esp + 0x1d4], 5
mov dword [esp + 0x78], 0x9c2b2e5f
lea ecx, [esp + 0x74]
push eax
xor dl, dl
call fcn.1001d02c
mov dl, 1
mov dword [esp], 0x4be8
mov ecx, 0xc6e
call fcn.1001d02c
pop ecx
mov dword [esp + 0x3c], ebx
jmp 0x1001e4a9
mov dword [esp + 0x44], 0xfffffffd
mov dword [esp + 0x44], 1
cmp dword [esp + 0x44], ebx
jl 0x1001e498
push dword [esp + 0x74]
movdqa xmm0, xmmword [0x10007e50]
lea eax, [esp + 0x198]
push eax
lea eax, [esp + 0x18c]
mov dword [esp + 0x6c], ebx
push eax
push ebx
lea ecx, [esp + 0x74]
mov dword [esp + 0x78], ebx
movdqu xmmword [esp + 0x194], xmm0
mov dword [esp + 0x7c], ebx
call fcn.1001c502
push 2
lea ecx, [esp + 0xfc]
mov byte [esp + 0x1d8], 6
call fcn.1001ae23
mov byte [esp + 0x1d4], 7
mov dword [esp + 0x80], ebx
mov dword [esp + 0x18], ebx
jmp 0x1001e3e6
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xf8]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x1001e3d3
mov eax, dword [esp + 0x64]
mov dword [eax + 8], ebx
jmp 0x1001e465
lea eax, [esp + 0x34]
mov dword [esp + 0x84], 0x35edade0
push eax
lea eax, [esp + 0x84]
mov dword [esp + 0x8c], ecx
push eax
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x104]
push eax
lea eax, [esp + 0x120]
push eax
push ebx
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0xc4]
push eax
call fcn.10022492
mov eax, dword [esp + 0x90]
add esp, 0x2c
inc dword [eax + 8]
mov eax, dword [esp + 0x64]
xor ecx, ecx
inc ecx
cmp dword [eax + 8], ecx
jle 0x1001e3f6
lea ecx, [esp + 0xf8]
call fcn.1001aea5
lea ecx, [esp + 0x64]
mov byte [esp + 0x1d4], 5
call fcn.1001aea5
dec dword [esp + 0x44]
jns 0x1001e36d
mov eax, dword [esp + 0x9c]
mov dword [eax], 0x7e05af84
inc dword [esp + 0x3c]
cmp dword [esp + 0x3c], 0xa
jg 0x1001e353
lea ecx, [esp + 0x110]
mov byte [esp + 0x1d4], 4
call fcn.1001aea5
inc dword [esp + 0x34]
cmp dword [esp + 0x34], 2
jl 0x1001e305
or dword [esp + 0x1d4], 0xffffffff
lea ecx, [esp + 0x9c]
call fcn.1001aea5
mov al, byte [esi]
cmp al, 0x30
jl 0x1001e671
cmp al, 0x39
jg 0x1001e671
mov dword [esp + 0x14], 9
lea ecx, [esp + 0x140]
push 1
call fcn.1001ae23
push 8
pop eax
mov dword [esp + 0x1d4], eax
lea ecx, [esp + 0xc8]
mov dword [esp + 0x24], 0xd3e99730
mov dword [esp + 0x24], 0xfffffffa
mov dword [esp + 0x24], 0x2377d644
mov dword [esp + 0x20], 0xf5291260
push 3
call fcn.1001ae23
lea eax, [esp + 0x140]
mov byte [esp + 0x1d4], 9
push eax
lea eax, [esp + 0x34]
mov dword [esp + 0x28], 0x314648a5
push ebx
push eax
call fcn.10022a50
add esp, 0xc
mov dword [esp + 0x30], ebx
jmp 0x1001e58a
mov eax, dword [esp + 0x30]
mov dword [esp + eax*4 + 0x1b8], 0x8f6a1c3d
inc dword [esp + 0x30]
cmp dword [esp + 0x30], 4
jl 0x1001e577
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0xcc]
push ebx
push eax
call fcn.1001eba3
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x140]
sub edx, 0xfffffff9
neg edx
sbb edx, edx
mov dword [eax], ecx
inc edx
add edx, dword [esp + 0x14]
imul edx, ecx
xor ecx, ecx
mov dword [esp + 0x1bc], edx
mov eax, dword [esp + 0x14]
sub edx, eax
mov eax, dword [esp + 0x14]
cmp edx, eax
setl cl
xor edx, edx
imul ecx, dword [esp + 0x14]
imul eax, ecx, 0xd0d3
add eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
add ecx, 0xefe8
cmp ecx, eax
mov eax, dword [esp + 0xc8]
setg dl
xor ecx, ecx
cmp edx, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x14]
setle cl
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp dword [esp + 0x24], eax
setne cl
xor eax, eax
cmp ecx, edx
lea ecx, [esp + 0xc8]
setge al
sub eax, edx
mov dword [esp + 0x24], eax
call fcn.1001aea5
or dword [esp + 0x1d4], 0xffffffff
lea ecx, [esp + 0x140]
call fcn.1001aea5
mov edx, dword [esp + 0x50]
movsx eax, byte [esi]
imul ecx, dword [edx], 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
mov dword [edx], eax
jmp 0x1001e286
push 3
lea ecx, [esp + 0xf0]
call fcn.1001ae23
push 1
lea ecx, [esp + 0xac]
mov dword [esp + 0x1d8], 0xa
call fcn.1001ae23
lea eax, [esp + 0x38]
mov byte [esp + 0x1d4], 0xb
push eax
lea eax, [esp + 0xf0]
push eax
push ebx
call fcn.10020d53
xor edx, edx
mov dword [esp + 0x44], ebx
add esp, 0xc
inc edx
jmp 0x1001e6d1
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0xa8]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x38]
cmp dword [esp + 0x38], edx
jl 0x1001e6bf
mov eax, dword [esp + 0xa8]
mov dword [eax], ebx
mov dword [esp + 0x24], 0xfffffff9
mov dword [esp + 0x18], ebx
jmp 0x1001e701
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x1a0], 0xa7fe64fd
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x1001e6ee
mov edi, dword [esp + 0xa8]
xor edx, edx
mov esi, dword [esp + 0xec]
push 2
mov eax, dword [edi]
mov ecx, dword [edi]
mov eax, dword [esi + eax*4]
add eax, 0x707
cmp eax, 1
mov dword [esp + 0x1a4], eax
setl dl
xor eax, eax
imul edx, dword [esi + ecx*4]
cmp edx, dword [esi + 8]
pop esi
setl al
inc dword [edi]
mov dword [esp + 0x24], eax
cmp dword [edi], esi
jle 0x1001e6e0
lea ecx, [esp + 0xa8]
call fcn.1001aea5
or dword [esp + 0x1d4], 0xffffffff
lea ecx, [esp + 0xec]
call fcn.1001aea5
push 0x778a
lea eax, [esp + 0x54]
push ebx
push eax
call fcn.100294c4
mov dword [esp + 0x2c], 0xffffffff
lea ecx, [esp + 0x9c]
add esp, 0xc
mov dword [esp + 0x18], 0x8c9dffbe
mov dword [esp + 0x20], 0xb597857
mov dword [esp + 0x14], 0x3f0e26a2
mov dword [esp + 0x10], 0xa2b52f10
mov dword [esp + 0x10], 0x72f548f9
push 1
call fcn.1001ae23
push 0xfffffffffffffffa
pop edi
xor edx, edx
inc edx
mov dword [esp + 0x10], edx
push 4
mov dword [esp + 0x14], edi
pop ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0xc], ebx
jmp 0x1001e7e6
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x28], 0x869ec427
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x1001e7d6
mov dword [esp + 0xc], ebx
jmp 0x1001e805
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x14c], 0xfffffffe
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x1001e7f2
mov dword [esp + 0xc], ebx
jmp 0x1001e820
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x194], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x1001e811
mov dword [esp + 0xc], ebx
jmp 0x1001e840
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xb4], 0x6ac8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x1001e82d
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], edx
jge 0x1001e86f
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x90]
mov dword [eax + ecx*4], 0xfffd
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x1001e850
push 4
pop ecx
mov dword [esp + 0xc], ebx
jmp 0x1001e888
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x16c], 0xf0cdbbf8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x1001e875
mov dword [esp + 0xc], ebx
jmp 0x1001e8a7
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x174], 0xf156de04
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x1001e894
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x28], ebx
jne 0x1001e9a9
inc dword [esp + 0x20]
mov eax, dword [esp + 0x158]
add eax, dword [esp + 0x14]
je 0x1001e8d7
cmp dword [esp + 0x14c], ebx
je 0x1001e8d7
mov ebx, edx
mov eax, dword [esp + 0x20]
xor ecx, ecx
cmp ebx, 0x81fd
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
sete cl
xor edx, edx
cmp ecx, eax
push 8
setle dl
xor ecx, ecx
imul eax, edx, 0x8aea
mov dword [esp + 0x1a0], edx
add eax, dword [esp + 0x24]
cmp eax, 0x6845925f
setne cl
neg ecx
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
inc ebx
cmp ebx, ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [esp + 0x2c]
sete dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
pop ecx
cmp ecx, eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x154]
sbb ecx, ecx
neg ecx
sub eax, ecx
je 0x1001e969
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x154], ebx
xor edx, edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp ecx, eax
setle dl
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
jmp 0x1001e9ac
xor ebx, ebx
inc ebx
mov eax, dword [esp + 0x28]
dec eax
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x90]
mov edx, dword [eax]
mov eax, dword [esp + 0x10]
cmp eax, edx
setg cl
xor eax, eax
cmp ecx, edx
setle al
sub eax, dword [esp + 0x14]
neg eax
sbb eax, eax
inc eax
cmp eax, 0xfffffffb
sbb eax, eax
neg eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x90]
setge dl
xor ecx, ecx
cmp edx, dword [eax]
setle cl
mov dword [esp + 0x170], ecx
lea ecx, [esp + 0x90]
mov dword [esp + 0x24], ebx
dec dword [esp + 0x180]
call fcn.1001aea5
jmp 0x1001dc1e
mov dword [esp + 0xc], ebx
mov dword [esp + 0x24], 3
push 8
pop eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x48], 0x3cbf
mov dword [esp + 0x14], 0x9fdb81fd
mov dword [esp + 0x24], 0xfffffffd
mov dword [esp + 0xc], ebx
jmp 0x1001ea7a
mov dword [esp + 0x24], 0xe871
cmp dword [esp + 0x24], ebx
jne 0x1001ea81
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffe4
je 0x1001ea68
mov dword [esp + 0xc], ebx
jmp 0x1001eb42
mov dword [esp + 0x18], 0xb6fe6d39
mov dword [esp + 0x20], 0x1300ca3c
cmp dword [esp + 0xc], ebx
je 0x1001eab0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0xc]
sub ecx, 0xc4ce
cmp ecx, eax
mov eax, dword [esp + 0x18]
setge dl
sub eax, edx
jne 0x1001ead1
mov eax, dword [esp + 0x18]
xor eax, eax
inc eax
cmp dword [esp + 0x18], eax
jg 0x1001eae2
mov edx, eax
cmp dword [esp + 0x20], ebx
jne 0x1001eae4
mov edx, ebx
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp edx, eax
sete cl
sub ecx, 0x4356
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
sub ecx, eax
jne 0x1001eb14
cmp dword [esp + 0x14], ebx
jne 0x1001eb14
mov eax, ebx
jmp 0x1001eb17
xor eax, eax
inc eax
cmp eax, 0xbe86de1f
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x17c264f8
setg cl
xor edx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x24], ecx
setl dl
mov dword [esp + 0x24], edx
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff9
jg 0x1001ea8a
xor eax, eax
inc eax
mov ecx, dword [esp + 0x1cc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret