Function at 0x10019823
Capabilities:
Delete file
Resolve function by parsing pe exports
Set registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1007d070
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x228
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x48], edx
push 4
lea ecx, [esp + 0xdc]
mov dword [esp + 0x3c], edi
call fcn.100176ef
xor ebx, ebx
mov dword [esp + 0x10], 0x532fe223
push 4
mov dword [esp + 0x14], ebx
pop edx
jmp 0x10019888
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xd8]
mov dword [eax + ecx*4], 0xb9b5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10019872
mov dword [esp + 0x10], ebx
jmp 0x100198a7
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x168], 0xfffffff9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10019894
push 0xfffffffffffffffa
mov dword [esp + 0x14], ebx
pop ecx
jmp 0x1001999a
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x2c], 8
mov dword [esp + 0x28], ecx
mov dword [esp + 0xcc], ebx
cmp dword [esp + 0xcc], 3
jg 0x10019988
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xd8]
cmp dword [eax + ecx*4], ebx
je 0x1001995c
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0xd8]
mov eax, dword [esi + eax*4]
imul eax, dword [esi + 4]
cmp eax, dword [esi + edx*4]
setg cl
cmp ecx, dword [esi + 0xc]
jg 0x10019940
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xd8]
cmp dword [eax + ecx*4], ebx
jne 0x10019940
xor edx, edx
inc edx
mov ecx, edx
jmp 0x10019945
xor edx, edx
mov ecx, ebx
inc edx
xor eax, eax
cmp ecx, edx
setl al
mov dword [esp + 0x2c], eax
mov eax, edx
cmp dword [esp + 0x2c], 0xb0ad8ea5
jne 0x1001995e
mov eax, ebx
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x168], eax
inc dword [esp + 0xcc]
cmp dword [esp + 0xcc], 3
jle 0x100198f6
push 0xfffffffffffffffa
pop ecx
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x170], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
mov eax, 0x2526041
jle 0x100198b9
lea ecx, [esp + 0xd8]
call fcn.10017771
cmp dword [edi + 0x10], ebx
jne 0x100199c2
xor al, al
jmp 0x1001b0cf
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x138]
push 3
mov dword [eax], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], 0xfffffffb
mov dword [esp + 0x20], 0x4a754320
mov dword [esp + 0x34], 0x15d7
call fcn.100176ef
mov dword [esp + 0x23c], ebx
or edi, 0xffffffff
mov dword [esp + 0x14], ebx
xor ecx, ecx
mov dword [esp + 0x34], 0xae202455
inc ecx
mov dword [esp + 0x24], 5
mov dword [esp + 0x1c], 0xd61c0642
mov dword [esp + 0x28], 8
mov dword [esp + 0x28], 0x6606a86e
mov dword [esp + 0x28], edi
mov dword [esp + 0x28], 0xfffffffd
mov dword [esp + 0x28], ecx
mov dword [esp + 0x28], 0xe9780ce5
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 3
jge 0x10019a6a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x138]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10019a4e
xor ecx, ecx
inc ecx
push 2
mov dword [esp + 0x14], ebx
pop esi
jmp 0x10019a86
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1d0], 0xcbaba27f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10019a73
mov dword [esp + 0x10], ebx
jmp 0x10019aa5
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1bc], 0xfffffffe
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x10019a92
cmp dword [esp + 0x20], 0xeede0b40
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
sbb edx, edx
mov eax, dword [esp + 0x1c]
inc edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
cmp dword [esp + 0x30], ebx
je 0x10019adc
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x138]
mov ecx, dword [eax + 4]
xor eax, eax
cmp edx, ecx
setne al
cmp eax, ecx
jge 0x10019b0a
mov dword [esp + 0x24], 0x8531d14c
mov dword [esp + 0x24], 0xaaf0a9b2
dec dword [esp + 0x14]
jmp 0x10019c62
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x144]
mov dword [esp + 0x2c], 0xfa46b4c0
mov dword [esp + 0x1c], 8
push 3
call fcn.100176ef
mov dword [esp + 0x28], 0x6ee0
mov dword [esp + 0x10], ebx
jmp 0x10019b4c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x144]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10019b3a
xor ecx, ecx
mov dword [esp + 0x10], ebx
inc ecx
jmp 0x10019b6b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x104], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x10019b5c
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
sub edx, eax
neg edx
push 0xfffffffffffffffa
sbb edx, edx
xor ecx, ecx
inc edx
imul edx, dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp edx, eax
setle cl
imul ecx, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [esp + 0x24]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
add ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
cmp ecx, 5
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
pop ecx
setg dl
xor eax, eax
cmp edx, 0x6825d828
setle al
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x30]
neg eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 1
mov eax, dword [esp + 0x14]
setge dl
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, dword [esp + 0x2c]
jg 0x10019c46
cmp dword [esp + 0x1d4], ebx
je 0x10019c46
xor ecx, ecx
inc ecx
jmp 0x10019c48
mov ecx, ebx
mov eax, dword [esp + 0x144]
mov dword [eax + 8], ecx
lea ecx, [esp + 0x144]
inc dword [esp + 0x28]
call fcn.10017771
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019c74
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
lea ecx, [esp + 0x138]
mov dword [esp + 0x23c], edi
call fcn.10017771
mov eax, 0x256915a
lea ecx, [esp + 0x1c4]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x24], 0xc752
mov dword [esp + 0x24], 1
mov dword [esp + 0x24], 0xfe1ca296
push 3
call fcn.100176ef
xor eax, eax
lea ecx, [esp + 0x15c]
inc eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x24], 0xe6e2bfbd
push eax
call fcn.100176ef
mov dword [esp + 0x10], ebx
jmp 0x10019cfd
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c4]
mov dword [eax + ecx*4], 0x307b5ca9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10019ce7
xor edx, edx
mov dword [esp + 0x10], ebx
inc edx
jmp 0x10019d1f
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x15c]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10019d0d
mov eax, dword [esp + 0x15c]
lea ecx, [esp + 0x15c]
mov dword [esp + 0x24], ebx
inc dword [eax]
call fcn.10017771
lea ecx, [esp + 0x1c4]
mov dword [esp + 0x23c], edi
call fcn.10017771
xor ecx, ecx
mov dword [esp + 0x30], 0xcd7d
mov dword [esp + 0x14], ebx
inc ecx
jmp 0x10019d71
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xf0], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x10019d62
push esi
lea ecx, [esp + 0x78]
call fcn.100176ef
mov dword [esp + 0x10], 1
mov dword [esp + 0x20], 0x6c1dfe93
mov dword [esp + 0x14], 0xc3a60813
mov dword [esp + 0x28], 0xfffffffd
mov dword [esp + 0x14], ebx
jmp 0x10019dba
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x74]
mov dword [eax + ecx*4], 0x7862fd41
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10019da7
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019dd2
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
inc eax
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ebx
jl 0x10019f95
mov dword [esp + 0x14], ebx
jmp 0x10019dfc
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x208], 0x908fbded
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10019de9
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019e15
push ebx
call dword [sym.imp.USER32.dll_CreateIconIndirect]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x74]
cmp dword [ecx + eax*4], ebx
jne 0x10019eda
xor edx, edx
cmp dword [ecx + 4], ebx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x74]
setne dl
push 0
cmp edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x14]
pop edx
sete dl
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, 6
jbe 0x10019e5a
cmp dword [esp + 0x10], ebx
je 0x10019e5a
xor eax, eax
inc eax
jmp 0x10019e5c
mov eax, ebx
mov dword [esp + 0x20], eax
xor edx, edx
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
add eax, 0x856d
cmp eax, dword [ecx + esi*4]
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x24]
setl dl
xor eax, eax
cmp edx, dword [esi + edi*4]
setl al
add eax, dword [esi + ecx*4]
jne 0x10019ea2
cmp dword [esi], ebx
jne 0x10019ea2
mov ecx, ebx
jmp 0x10019ea5
xor ecx, ecx
inc ecx
mov esi, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x10]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setge dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x74]
setge cl
xor edx, edx
cmp ecx, 0x9a92
setle dl
imul edx, dword [eax + esi*4]
test edx, edx
jne 0x10019eda
mov eax, ebx
jmp 0x10019edd
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
xor eax, eax
inc eax
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], ebx
jl 0x10019f8b
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], ebx
jl 0x10019f81
mov dword [esp + 0x1c], 0xce3d9786
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], ebx
jl 0x10019f7b
xor ebx, ebx
inc ebx
mov dword [esp + 0x2c], ebx
xor edx, edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], ebx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
cmp ecx, eax
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x74]
setg dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x28]
setne cl
sub eax, dword [esi + edi*4]
neg eax
sbb eax, eax
inc eax
imul ecx, eax
mov eax, dword [esp + 0x24]
sub eax, ecx
sub eax, dword [esp + 0x2c]
cmp eax, 0xf997ec53
sbb eax, eax
neg eax
mov dword [esp + 0x208], eax
dec dword [esp + 0x1c]
jns 0x10019f19
xor eax, eax
xor ebx, ebx
inc eax
dec dword [esp + 0x14]
jns 0x10019f04
dec dword [esp + 0x20]
jns 0x10019ef2
dec dword [esp + 0x10]
jns 0x10019de3
lea ecx, [esp + 0x74]
call fcn.10017771
mov dword [esp + 0x60], ebx
cmp dword [esp + 0x60], ebx
jl 0x1001a3f2
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [esp + 0x20], 0xac64a684
mov dword [esp + 0x24], 0xecf4a416
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019fdd
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetBkColor]
mov dword [esp + 0x20], ebx
jmp 0x1001a040
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x1c], 0xffffffe3
jmp 0x1001a035
mov dword [esp + 0x24], 0xfffffffe
cmp dword [esp + 0x20], ebx
jne 0x1001a003
mov eax, ebx
jmp 0x1001a006
xor eax, eax
inc eax
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x1c]
setle cl
xor edx, edx
cmp ecx, eax
mov ecx, dword [esp + 0x24]
setl dl
sub ecx, dword [esp + 0x20]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
setl al
mov dword [esp + 0x24], eax
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xfffffff1
je 0x10019ff1
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xffffffe7
jle 0x10019fe3
xor esi, esi
mov dword [esp + 0x24], 0xffffffff
inc esi
lea ecx, [esp + 0x1d8]
push esi
call fcn.100176ef
mov dword [esp + 0x23c], 2
mov dword [esp + 0x24], 0xfffffff7
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001a084
push ebx
call dword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001a096
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
mov dword [esp + 0x24], 0x53061ece
mov dword [esp + 0x30], esi
mov dword [esp + 0x1c], 0xa61928c1
mov dword [esp + 0x1c], 0x14
jmp 0x1001a0f1
cmp dword [esp + 0x1c], ebx
mov byte [esp + 0x1b], bl
je 0x1001a0ce
cmp byte [esp + 0x1b], 0
je 0x1001a0ed
push ebx
call dword [sym.imp.USER32.dll_DestroyIcon]
jmp 0x1001a0ed
cmp byte [esp + 0x1b], 0
je 0x1001a0ed
push 0x864
push ebx
push 0xd2a
push 0xd30
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x11
jl 0x1001a0b4
push dword [esp + 0x104]
movdqa xmm0, xmmword [0x10007b40]
lea eax, [esp + 0x20c]
push eax
lea eax, [esp + 0x200]
mov dword [esp + 0x18], 2
push eax
push ebx
lea ecx, [esp + 0xa0]
mov dword [esp + 0xa0], ebx
movdqu xmmword [esp + 0x208], xmm0
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
call fcn.10018daf
mov dword [esp + 0x20], 0x2cc9105f
mov dword [esp + 0x1c], 0xa6b719d8
mov dword [esp + 0x24], 0x3888
mov dword [esp + 0x14], ebx
jmp 0x1001a17b
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x214], 0xfffffffe
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1001a168
mov dword [esp + 0x10], 0xa
jmp 0x1001a1e2
mov dword [esp + 0x14], ebx
jmp 0x1001a1a5
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1b4], 0xbea12209
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1001a192
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x21c], eax
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001a1de
push ebx
push ebx
push 0x1d10
call edi
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffee
jg 0x1001a18c
mov dword [esp + 0x10], 0xfffffff0
cmp dword [esp + 0x10], 0xfffffff5
jle 0x1001a290
mov esi, dword [esp + 0x90]
mov dword [esp + 0x2c], ebx
xor edx, edx
mov dword [esp + 0x28], 0xe7b1
mov dword [esp + 0x24], 0xfffffff7
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
cmp dword [esi + 8], eax
mov eax, dword [esp + 0x1c]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x90]
setle cl
xor edx, edx
cmp ecx, dword [eax]
mov eax, dword [esp + 0x2c]
setle dl
xor ecx, ecx
cmp eax, edx
setl cl
xor edx, edx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
cmp eax, 0xf341
mov eax, dword [esp + 0x28]
setne dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
sub ecx, eax
mov dword [esp + 0x24], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff5
jg 0x1001a203
xor esi, esi
inc esi
lea ecx, [esp + 0x90]
call fcn.10017771
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0x1dc]
push eax
push ebx
call fcn.1001cb78
mov dword [esp + 0x34], 0xffffffff
lea ecx, [esp + 0x12c]
add esp, 0xc
mov dword [esp + 0x34], 0xa20a2982
mov dword [esp + 0x24], 0x3fc4b03e
mov dword [esp + 0x24], 0x3dda37bb
mov dword [esp + 0x28], esi
push 3
pop eax
mov dword [esp + 0x2c], 0xddcef989
mov dword [esp + 0x24], eax
mov dword [esp + 0x24], 0xb151
mov dword [esp + 0x24], eax
push eax
call fcn.100176ef
push 3
mov dword [esp + 0x14], ebx
pop edx
jmp 0x1001a31d
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x150], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001a30a
xor ecx, ecx
mov dword [esp + 0x10], ebx
inc ecx
jmp 0x1001a33f
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x100], 0x37aced45
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001a32c
mov dword [esp + 0x10], ebx
jmp 0x1001a361
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x120]
mov dword [eax + ecx*4], 0x3205f5a2
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001a34b
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x120]
mov eax, dword [esp + 0x24]
mov ecx, dword [edx + 8]
dec ecx
dec dword [edx + 8]
cmp ecx, eax
jle 0x1001a386
xor ecx, ecx
inc ecx
jmp 0x1001a388
mov ecx, ebx
mov eax, dword [esp + 0x150]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x120]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x154]
mov eax, dword [esp + 0x158]
mov dword [esp + 0x2c], 0x786
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x34]
mov dword [esp + 0x100], eax
call fcn.10017771
dec dword [esp + 0x30]
lea ecx, [esp + 0x1d8]
or dword [esp + 0x23c], 0xffffffff
call fcn.10017771
dec dword [esp + 0x60]
jns 0x10019fb2
mov dword [esp + 0x20], 0x3f4f46db
mov dword [esp + 0x2c], 0x53ebff78
mov dword [esp + 0x34], 0x35e948e
mov dword [esp + 0x14], ebx
jmp 0x1001a420
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x4c], 7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1001a410
push 2
pop edi
mov dword [esp + 0x20], edi
cmp dword [esp + 0x20], ebx
jl 0x1001a604
mov dword [esp + 0x10], 0x58bac04e
lea ecx, [esp + 0x1e8]
mov dword [esp + 0x24], 0x1940c9ba
push 3
call fcn.100176ef
mov dword [esp + 0x14], ebx
jmp 0x1001a472
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1e8]
mov dword [eax + ecx*4], 0xfa3ce724
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1001a45c
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001a491
push 0x2033
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [esp + 0x10], edi
cmp dword [esp + 0x10], ebx
jl 0x1001a5ee
mov dword [esp + 0x30], 0x22e6e7f7
xor eax, eax
inc eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], eax
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001a4d8
push ebx
call dword [sym.imp.USER32.dll_CharUpperW]
mov dword [esp + 0x30], ebx
jmp 0x1001a5da
mov dword [esp + 0x1c], 4
mov dword [esp + 0x1c], ebx
jmp 0x1001a55a
mov eax, dword [esp + 0x20]
mov eax, dword [esp + eax*4 + 0x4c]
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x4c], ebx
je 0x1001a50d
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0x4c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
xor ecx, ecx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + eax*4 + 0x4c]
mov eax, dword [esp + 0x20]
test eax, eax
setle cl
xor eax, eax
cmp ecx, edx
setl al
imul ecx, eax, 0xfffffffd
sub ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
setge dl
xor ecx, ecx
imul edx, dword [esp + 0x30]
mov eax, dword [esp + 0x54]
cmp edx, eax
setg cl
mov dword [esp + 0x24], ecx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jle 0x1001a4ef
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x4c]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
test eax, eax
setns cl
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x2c], 0x3c489718
jne 0x1001a595
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x4c]
cmp dword [esp + 0x2c], ebx
je 0x1001a5b2
cmp dword [esp + 0x30], ebx
je 0x1001a5b2
xor ecx, ecx
inc ecx
jmp 0x1001a5b4
mov ecx, ebx
mov eax, dword [esp + 0x30]
xor edx, edx
add eax, ecx
cmp eax, 0xc72f
mov eax, dword [esp + 0x34]
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [esp + 0x184], ecx
inc dword [esp + 0x30]
cmp dword [esp + 0x30], edi
jle 0x1001a4e1
dec dword [esp + 0x10]
jns 0x1001a49f
lea ecx, [esp + 0x1e8]
call fcn.10017771
dec dword [esp + 0x20]
jns 0x1001a438
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001a616
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esp + 0x30], ebx
jmp 0x1001a75f
mov dword [esp + 0x20], 0x72585faf
mov dword [esp + 0x14], 0xeca5
mov dword [esp + 0x28], 0xd9140931
mov dword [esp + 0x20], 3
cmp dword [esp + 0x20], ebx
jl 0x1001a671
lea eax, [esp + 0x3e]
mov byte [esp + 0x3e], bl
push eax
push ebx
call fcn.1001cb3a
push 0x7f67
lea eax, [esp + 0x4b]
mov byte [esp + 0x4b], bl
push eax
push ebx
call fcn.1001dd17
add esp, 0x14
dec dword [esp + 0x20]
jns 0x1001a645
mov dword [esp + 0x20], 3
cmp dword [esp + 0x20], ebx
jl 0x1001a75b
xor edx, edx
inc edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], 0xa832a49e
push 0xfffffffffffffffa
pop eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], ebx
jne 0x1001a6b2
mov eax, dword [esp + 0x60]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x2c]
xor ecx, ecx
cmp eax, 0xae22781
setne cl
xor eax, eax
test ecx, ecx
setg al
cmp eax, edx
jl 0x1001a6d3
mov ecx, ebx
cmp dword [esp + 0x60], ebx
je 0x1001a6d5
mov ecx, edx
mov eax, dword [esp + 0x60]
xor edx, edx
neg ecx
cmp ecx, eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
setg dl
add ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x30]
setle dl
sub edx, 6
mov eax, dword [esp + eax*4 + 0x58]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp ecx, eax
sbb eax, eax
inc eax
sub eax, edx
neg eax
sbb eax, eax
inc eax
cmp eax, dword [esp + 0x30]
jg 0x1001a721
cmp dword [esp + 0x1c], ebx
jne 0x1001a721
mov edx, ebx
jmp 0x1001a724
xor edx, edx
inc edx
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp edx, eax
push 8
setl cl
pop eax
sub eax, ecx
sub eax, dword [esp + 0x20]
sub eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
mov dword [esp + eax*4 + 0x58], ecx
dec dword [esp + 0x20]
jns 0x1001a683
inc dword [esp + 0x30]
cmp dword [esp + 0x30], 3
jle 0x1001a61f
mov dword [esp + 0x24], 0x215a6091
mov dword [esp + 0x24], 0x1ba80278
mov dword [esp + 0x10], ebx
jmp 0x1001a793
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x198], 0xfffffffb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x1001a780
mov dword [esp + 0x10], ebx
jmp 0x1001a7ac
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x68], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001a7a0
mov dword [esp + 0x70], ebx
cmp dword [esp + 0x70], 3
jg 0x1001a8db
xor edx, edx
push 0xfffffffffffffffa
inc edx
pop esi
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x28], 9
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], 0xe1c2
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + eax*4 + 0x198]
mov eax, dword [esp + 0x70]
mov dword [esp + eax*4 + 0x198], ecx
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], esi
je 0x1001a8cc
mov dword [esp + 0x14], edx
xor ecx, ecx
mov dword [esp + 0x2c], 8
mov dword [esp + 0x20], 0xffffffff
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1a0]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + eax*4 + 0x198]
mov eax, dword [esp + 0x20]
cmp eax, 1
setl cl
cmp edx, ecx
je 0x1001a873
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001a8bb
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
jmp 0x1001a8bb
push 1
lea ecx, [esp + 0x118]
call fcn.100176ef
xor edx, edx
mov dword [esp + 0x14], ebx
inc edx
jmp 0x1001a8a0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x114]
mov dword [eax + ecx*4], 0xfffffffc
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x1001a88a
mov eax, dword [esp + 0x114]
lea ecx, [esp + 0x114]
dec dword [eax]
call fcn.10017771
dec dword [esp + 0x1c]
push 1
pop edx
cmp dword [esp + 0x1c], esi
jne 0x1001a808
inc dword [esp + 0x70]
cmp dword [esp + 0x70], 3
jle 0x1001a7c8
mov eax, dword [esp + 0x38]
cmp dword [eax + 0x14], 0x10
jb 0x1001a8e9
mov esi, dword [eax]
jmp 0x1001a8eb
mov esi, eax
cmp dword [eax + 0x14], 0x10
jb 0x1001a8f5
mov ecx, dword [eax]
jmp 0x1001a8f7
mov ecx, eax
mov eax, dword [eax + 0x10]
add eax, ecx
cmp esi, eax
je 0x1001ae96
mov dword [esp + 0x1c], 0xfffffffd
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x20], 0x2aa6
mov dword [esp + 0x28], 0xfffffffb
mov dword [esp + 0x14], 0x168aa2d3
mov dword [esp + 0x14], ebx
jmp 0x1001a945
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xf4], 0xfffffff7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1001a932
xor edx, edx
inc edx
cmp dword [esp + 0x1c], ebx
je 0x1001a97d
mov eax, dword [esp + 0x1c]
mov ecx, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
jmp 0x1001a97f
mov ecx, ebx
mov eax, dword [esp + 0x1c]
add eax, ecx
je 0x1001a98d
cmp dword [esp + 0x2c], ebx
jne 0x1001a98f
mov edx, ebx
mov eax, dword [esp + 0x20]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xf8], eax
cmp dword [esp + 0x1c], ebx
jne 0x1001a9be
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esp + 0xfc]
cmp ecx, eax
mov eax, dword [esp + 0xf4]
setge dl
xor ecx, ecx
cmp edx, eax
mov al, byte [esi]
setg cl
mov dword [esp + 0xfc], ecx
cmp al, 0x30
jl 0x1001ab17
cmp al, 0x39
jg 0x1001ab17
push 3
pop edi
push edi
lea ecx, [esp + 0x130]
call fcn.100176ef
lea eax, [esp + 0x1e4]
mov dword [esp + 0x23c], edi
push eax
lea eax, [esp + 0x130]
mov dword [esp + 0x44], 0x432a2768
push ebx
mov dword [esp + 0x2c], 0xac46ddcd
push eax
call fcn.1001db6a
add esp, 0xc
mov dword [esp + 0x40], ebx
cmp dword [esp + 0x40], 2
jg 0x1001aae8
xor edi, edi
inc edi
push edi
lea ecx, [esp + 0xa0]
call fcn.100176ef
push ebx
lea eax, [esp + 0xa0]
mov byte [esp + 0x240], 4
push eax
lea eax, [esp + 0x1fc]
push eax
call fcn.1001d52e
mov eax, dword [esp + 0xa8]
add esp, 0xc
mov dword [eax], 2
jmp 0x1001aaba
mov dword [esp + 0x14], edi
mov dword [esp + 0x14], ebx
jmp 0x1001aaaa
lea eax, [esp + 0x12c]
push eax
lea eax, [esp + 0x44]
push ebx
push eax
call fcn.1001cad8
add esp, 0xc
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jle 0x1001aa90
mov eax, dword [esp + 0x9c]
dec dword [eax]
mov eax, dword [esp + 0x9c]
cmp dword [eax], ebx
jge 0x1001aa86
lea ecx, [esp + 0x9c]
mov byte [esp + 0x23c], 3
call fcn.10017771
inc dword [esp + 0x40]
cmp dword [esp + 0x40], 2
jle 0x1001aa49
or dword [esp + 0x23c], 0xffffffff
lea ecx, [esp + 0x12c]
call fcn.10017771
mov edx, dword [esp + 0x48]
movsx eax, byte [esi]
imul ecx, dword [edx], 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
mov dword [edx], eax
mov eax, dword [esp + 0x38]
jmp 0x1001a8eb
xor edx, edx
inc edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x38], 0x193208af
mov dword [esp + 0x2c], 0xb35b6890
mov dword [esp + 0x38], 0xfffffffe
mov dword [esp + 0x14], ebx
jmp 0x1001ab4f
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x80], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x1001ab3c
mov dword [esp + 0x10], 3
cmp dword [esp + 0x10], ebx
jl 0x1001ab74
push ebx
call fcn.1001d3fd
dec dword [esp + 0x14]
pop ecx
jns 0x1001ab64
xor edx, edx
inc edx
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 3
jg 0x1001acd2
jmp 0x1001ab88
xor edx, edx
inc edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], 0xc88f
mov dword [esp + 0x34], 0xb656
mov dword [esp + 0x14], ebx
jmp 0x1001abb5
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x220], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x1001aba2
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x80]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x80]
mov eax, dword [esp + 0x8c]
add eax, 0x94bb489f
add eax, ecx
jne 0x1001abf1
mov eax, dword [esp + 0x10]
mov ecx, ebx
cmp dword [esp + eax*4 + 0x80], ebx
je 0x1001abf3
mov ecx, edx
mov eax, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + eax*4 + 0x80]
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x80]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x80]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x80]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setle dl
imul edx, dword [esp + eax*4 + 0x80]
neg edx
je 0x1001ac64
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x80], ebx
je 0x1001ac64
xor ecx, ecx
inc ecx
jmp 0x1001ac66
mov ecx, ebx
mov eax, dword [esp + 0x2c]
xor edx, edx
cmp ecx, eax
setl dl
xor ecx, ecx
mov dword [esp + 0x224], edx
mov eax, dword [esp + 0x34]
cmp edx, eax
setne cl
mov dword [esp + 0x38], ecx
mov dword [esp + 0x1c], ebx
jmp 0x1001acbc
push 0x1385
push ebx
push 0x156d
push 0x3e51
push 0x4f2f
push 0x771f
push 0x4b25
call fcn.1001cc6a
mov eax, dword [esp + 0x54]
add esp, 0x1c
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jle 0x1001ac8d
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jle 0x1001ab85
lea eax, [esp + 0x48]
push eax
push 0x380
push ebx
call fcn.1001d03c
mov dword [esp + 0x28], 0x68206240
add esp, 0xc
mov dword [esp + 0x38], 0xa296
mov dword [esp + 0x28], 0xb83de37d
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], 0xffffffef
je 0x1001ae89
mov edi, 0x6f1fdbd0
mov dword [esp + 0x20], 0x976ff55e
lea ecx, [esp + 0x108]
push 4
call fcn.100176ef
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc0], edi
mov dword [esp + 0xc4], edi
mov dword [esp + 0x14], ebx
jmp 0x1001ad5f
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x108]
mov dword [eax + ecx*4], 0x9008
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x1001ad49
mov dword [esp + 0x20], 0xfffffffe
cmp dword [esp + 0x20], 9
jne 0x1001ae6e
mov esi, dword [esp + 0x108]
xor edx, edx
inc edx
mov dword [esp + 0x28], 0x2e96673e
xor ecx, ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], 0xa911
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x108]
cmp dword [eax], 0x60d2
setg cl
xor eax, eax
cmp ecx, dword [esi + 8]
setge al
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x20]
je 0x1001add2
mov ecx, edx
cmp dword [esp + 0x38], ebx
jne 0x1001add4
mov ecx, ebx
mov eax, dword [esp + 0xb8]
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x34]
setle dl
mov dword [esp + 0x24], edx
xor edx, edx
cmp dword [esp + 0x24], eax
mov eax, dword [esp + 0xc4]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, 0x969b42c5
setle cl
cmp eax, ecx
mov eax, dword [esp + 0x38]
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setg cl
cmp ecx, dword [esp + 0x28]
jle 0x1001ae2e
cmp dword [esp + 0xb8], ebx
jne 0x1001ae2e
xor edx, edx
mov eax, ebx
inc edx
jmp 0x1001ae33
xor edx, edx
inc edx
mov eax, edx
cmp edx, eax
sbb ecx, ecx
xor eax, eax
add ecx, 0x4dde9a
cmp ecx, 0x8064
setne al
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
sub eax, 7
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0xbc], eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 9
je 0x1001ad83
lea ecx, [esp + 0x108]
call fcn.10017771
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xffffffef
jne 0x1001ad11
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
jmp 0x100199bb
push 4
lea ecx, [esp + 0xe8]
call fcn.100176ef
push 0x7193
lea eax, [esp + 0xe8]
mov dword [esp + 0x240], 5
push eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x28], 0x532fe223
push eax
push ebx
call fcn.1001ce94
add esp, 0x10
mov dword [esp + 0x44], ebx
jmp 0x1001aeeb
mov eax, dword [esp + 0x44]
mov dword [esp + eax*4 + 0x188], 0xfffffff9
inc dword [esp + 0x44]
cmp dword [esp + 0x44], 4
jl 0x1001aed8
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x20], 3
jg 0x1001afe9
mov edi, 0x2526041
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], edi
push 0xfffffffffffffffa
mov dword [esp + 0x3c], 8
pop eax
mov dword [esp + 0x24], eax
mov dword [esp + 0xac], ebx
jmp 0x1001afbe
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xe4]
cmp dword [eax + ecx*4], ebx
je 0x1001afa3
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0xe4]
mov eax, dword [esi + eax*4]
imul eax, dword [esi + 4]
cmp eax, dword [esi + edx*4]
setg cl
cmp ecx, dword [esi + 0xc]
jg 0x1001af87
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xe4]
cmp dword [eax + ecx*4], ebx
jne 0x1001af87
xor edx, edx
inc edx
mov ecx, edx
jmp 0x1001af8c
xor edx, edx
mov ecx, ebx
inc edx
xor eax, eax
cmp ecx, edx
setl al
mov dword [esp + 0x38], eax
mov eax, edx
cmp dword [esp + 0x38], 0xb0ad8ea5
jne 0x1001afa5
mov eax, ebx
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x188], eax
inc dword [esp + 0xac]
cmp dword [esp + 0xac], 3
jle 0x1001af3d
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x190], eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jle 0x1001af06
or dword [esp + 0x23c], 0xffffffff
lea ecx, [esp + 0xe4]
call fcn.10017771
mov dword [esp + 0x10], 0xb4ff
xor eax, eax
mov dword [esp + 0x24], 0xb39e
inc eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x34], eax
push 0xfffffffffffffffa
pop ecx
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x1a8]
mov dword [esp + 0x34], 0xadf86095
mov dword [esp + 0x34], ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x34], 0xfe924f63
push eax
call fcn.100176ef
xor edx, edx
inc edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], 2
mov dword [esp + 0x14], ebx
jmp 0x1001b07b
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1a8]
mov dword [eax + ecx*4], 3
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x1001b065
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
xor eax, eax
mov ecx, dword [esp + 0x10]
cmp ecx, edx
lea ecx, [esp + 0x1a8]
setl al
mov dword [esp + 0x34], eax
dec dword [esp + 0x38]
call fcn.10017771
xor eax, eax
inc eax
mov ecx, dword [esp + 0x234]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret