Function at 0x10032f37
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10065097
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x158
cmp byte [edx], 0x50
push ebx
push esi
push edi
mov dword [esp + 0x34], edx
jne 0x10033d78
cmp byte [edx + 1], 0x4b
jne 0x10033d78
mov dword [esp + 0x10], 0x6f1b
xor ebx, ebx
mov dword [esp + 0x14], ebx
xor esi, esi
inc esi
mov dword [esp + 0x28], 0xfffffffa
mov dword [esp + 0x40], 0xfffffff7
mov dword [esp + 0x130], esi
mov dword [esp + 0x134], esi
mov dword [esp + 0x138], esi
mov dword [esp + 0x13c], esi
push 4
mov dword [esp + 0x18], ebx
pop edi
cmp dword [esp + 0x10], edi
mov eax, dword [esp + 0x10]
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
mov eax, dword [esp + 0x10]
setl cl
imul ecx, ecx, 0xc383
neg eax
sbb eax, eax
inc eax
cmp eax, ecx
jne 0x10033089
push 2
pop edi
push edi
lea ecx, [esp + 0xd8]
call fcn.1000ba05
mov dword [esp + 0x18], 5
mov dword [esp + 0x18], ebx
jmp 0x10033013
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xd4]
mov dword [eax + ecx*4], 0x5378470e
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x10032ffd
mov eax, dword [esp + 0x10]
neg eax
je 0x10033038
mov eax, dword [esp + 0xd4]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x10]
jg 0x10033057
cmp dword [esp + 0x10], ebx
je 0x10033047
cmp dword [esp + 0x10], 7
mov eax, esi
jne 0x10033049
mov eax, ebx
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], ebx
jne 0x10033057
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], edi
jne 0x1003307d
mov ecx, dword [esp + 0xd4]
mov eax, dword [ecx + 4]
mov dword [esp + 0x28], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
je 0x1003306c
lea ecx, [esp + 0xd4]
jmp 0x1003323f
mov dword [esp + 0x2c], 0xacda
lea ecx, [esp + 0x74]
mov dword [esp + 0x18], 0xde0d6158
push esi
call fcn.1000ba05
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], ebx
jmp 0x100330c0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x74]
mov dword [eax + ecx*4], 0x1448afe0
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100330ad
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x10]
mov eax, dword [esp + 0x74]
push 2
pop edi
add edx, dword [eax]
mov eax, dword [esp + 0x10]
cmp edx, eax
mov edx, dword [esp + 0x74]
setne cl
xor eax, eax
cmp ecx, dword [edx]
setl al
xor ebx, ebx
cmp eax, 0x319b885b
mov eax, dword [esp + 0x28]
setg bl
xor ecx, ecx
cmp ebx, eax
mov dword [edx], ebx
setg cl
cmp dword [esp + 0x2c], ecx
jne 0x100331cd
mov dword [esp + 0x28], esi
xor ebx, ebx
mov dword [esp + 0x2c], 0x5ef7b606
mov dword [esp + 0x14], ebx
jmp 0x10033139
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xb8], 0xca52c43d
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10033126
mov eax, dword [esp + 0x74]
mov ecx, esi
sub ecx, dword [eax]
imul ecx, dword [eax]
test ecx, ecx
je 0x10033156
mov edx, esi
cmp dword [esp + 0x20], ebx
jne 0x10033158
mov edx, ebx
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp edx, eax
setge cl
cmp dword [esp + 0x10], ecx
je 0x10033171
mov eax, ebx
cmp dword [esp + 0x28], ebx
je 0x10033173
mov eax, esi
mov ecx, dword [esp + 0x28]
sub ecx, dword [esp + 0x28]
imul ecx, eax
mov eax, dword [esp + 0x74]
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x74]
cmp dword [edx], edi
setle cl
xor eax, eax
cmp ecx, 0x3d22
setg al
xor ecx, ecx
add eax, 0xedf21916
cmp eax, 0x6b74
mov dword [edx], eax
setne cl
cmp ecx, 0xa480d8aa
sbb eax, eax
inc eax
mov dword [esp + 0x28], eax
jmp 0x10033207
xor ebx, ebx
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x14], ebx
jmp 0x100331f0
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xb4], 0x6311489d
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100331dd
inc dword [esp + 0x20]
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x18], 0xfffffffc
jmp 0x10033234
mov byte [esp + 0x27], bl
cmp byte [esp + 0x27], 0
je 0x10033229
push ebx
push 0x1469
push ebx
call dword [sym.imp.GDI32.dll_GetBitmapBits]
mov eax, dword [esp + 0x138]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x30
jge 0x10033211
lea ecx, [esp + 0x74]
call fcn.1000ba88
mov eax, 0x6182eac4
xor edx, edx
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x10], 0x2f76ec75
mov esi, dword [esp + 0xcc]
mov dword [esp + 0xcc], esi
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp ecx, eax
setle dl
xor ecx, ecx
cmp edx, 0x5b29
setle cl
sub ecx, 0xffff
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp esi, ecx
setl al
imul eax, dword [esp + 0x10]
imul eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x10]
jge 0x10033304
mov dword [esp + 0x10], ebx
jmp 0x100332dd
cmp byte [esp + 0x27], 0
je 0x100332d9
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetClipBox]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xc
mov byte [esp + 0x27], bl
jne 0x100332bd
cmp byte [esp + 0x27], 0
je 0x10033388
push 0xa5
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x10033388
xor esi, esi
lea ecx, [esp + 0x10c]
inc esi
push esi
call fcn.1000ba05
mov dword [esp + 0x14], ebx
jmp 0x10033330
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10c]
mov dword [eax + ecx*4], 0x58331c58
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x1003331a
mov dword [esp + 0x10], ebx
jmp 0x10033375
mov dword [esp + 0x18], esi
mov dword [esp + 0x2c], 0x261fc42f
mov dword [esp + 0x18], ebx
jmp 0x1003335d
mov eax, dword [esp + 0x10c]
cmp dword [eax], ebx
jne 0x10033364
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 8
je 0x1003334e
mov eax, dword [esp + 0x18]
add eax, 0x5f27a412
mov dword [esp + 0x2c], eax
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffea
je 0x1003333c
lea ecx, [esp + 0x10c]
call fcn.1000ba88
mov dword [esp + 0x10], 0xfffffffa
jmp 0x100333a1
mov dword [esp + 0xcc], 0x997b09b3
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff6
jle 0x10033392
mov esi, dword [esp + 0x34]
lea ecx, [esp + 0x124]
push edi
mov al, byte [esi + 2]
mov dword [esp + 0x1c], 1
mov byte [esp + 0x23], al
call fcn.1000ba05
mov dword [esp + 0x10], ebx
jmp 0x100333e1
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x9c], 1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x100333ce
mov dword [esp + 0x10], ebx
jmp 0x10033404
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x124]
mov dword [eax + ecx*4], 0xd017
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x100333ee
mov dword [esp + 0xa0], 0xe
jmp 0x10033442
mov byte [esp + 0x27], bl
cmp byte [esp + 0x27], 0
je 0x1003343b
push 0x22ce
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetTextAlign]
inc dword [esp + 0xa0]
cmp dword [esp + 0xa0], 0x11
jne 0x10033417
mov dword [esp + 0x18], ebx
jmp 0x100334cc
mov dword [esp + 0x28], 0x96673e7e
mov dword [esp + 0x14], ebx
jmp 0x10033473
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xbc], 0xcf5a8b06
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x10033460
cmp dword [esp + 0x18], ebx
jne 0x100334be
mov eax, dword [esp + 0x18]
xor edx, edx
inc dword [esp + 0x28]
mov ecx, dword [esp + 0xc0]
add ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x124]
cmp ecx, dword [eax]
mov eax, dword [esp + 0x28]
setne dl
sub eax, edx
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0xa4], eax
cmp eax, 0xffffffff
jne 0x100334be
mov eax, ebx
jmp 0x100334c1
xor eax, eax
inc eax
mov dword [esp + 0xc0], eax
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffed
jle 0x10033452
lea ecx, [esp + 0x124]
call fcn.1000ba88
mov al, byte [esi + 3]
lea ecx, [esp + 0x118]
mov byte [esp + 0x27], al
movzx eax, byte [esp + 0x1f]
mov dword [esp + 0x10], 0xb26bdde0
add eax, 4
mov dword [esp + 0x30], 0xcf33f23e
mov dword [esp + 0x40], 0xfeb9e9d6
mov dword [esp + 0x40], 0x5256ee97
mov dword [esp + 0x20], 0xffffffff
push edi
mov dword [esp + 0x30], eax
call fcn.1000ba05
mov dword [esp + 0x28], 0xa2ef
mov dword [esp + 0x14], 0xdfce9586
mov dword [esp + 0x10], ebx
jmp 0x10033557
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x118]
mov dword [eax + ecx*4], 0xa0426a76
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10033541
mov dword [esp + 0x10], ebx
jmp 0x10033576
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xec], 0x4891023f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10033563
mov dword [esp + 0x10], 6
jmp 0x10033613
mov dword [esp + 0x20], 0xfffffffd
mov dword [esp + 0x18], 0x348f4a8
cmp dword [esp + 0x10], ebx
je 0x100335be
mov eax, dword [esp + 0xf4]
mov eax, dword [esp + 0x18]
dec dword [esp + 0xf4]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
neg edx
mov dword [esp + 0x20], 3
mov eax, dword [esp + 0x28]
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
sete cl
cmp ecx, 0xfffb
mov ecx, dword [esp + 0x20]
sbb eax, eax
inc eax
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x20], ecx
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1003360f
push ebx
push ebx
push 0x1e90
call dword [sym.imp.ADVAPI32.dll_CopySid]
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe3
jl 0x1003358a
mov eax, dword [esp + 0xf0]
xor ecx, ecx
cmp eax, 0xce22
mov eax, dword [esp + 0x20]
setg cl
xor edx, edx
neg ecx
add ecx, ecx
cmp ecx, eax
setle dl
sub edx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
neg edx
cmp edx, eax
mov eax, dword [esp + 0x118]
setle cl
xor edx, edx
cmp ecx, 0x58a
lea ecx, [esp + 0x118]
setg dl
mov dword [eax], edx
call fcn.1000ba88
mov eax, 0x8ade19d2
xor ecx, ecx
mov dword [esp + 0x54], eax
inc ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], ebx
jmp 0x100336a2
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x38], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x10033696
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x100336cd
push 0xdeb
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_Polygon]
mov dword [esp + 0x5c], ebx
cmp dword [esp + 0x5c], ebx
jg 0x10033779
mov dword [esp + 0x10], 0xfffffffc
mov dword [esp + 0x30], ebx
mov dword [esp + 0x20], 0xfb5d1cb6
mov dword [esp + 0x10], ebx
jmp 0x10033761
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x38]
mov eax, dword [esp + 0x5c]
mov dword [esp + eax*4 + 0x38], ecx
xor ecx, ecx
mov eax, dword [esp + 0x5c]
mov eax, dword [esp + eax*4 + 0x38]
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
mov eax, dword [esp + eax*4 + 0x38]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x38]
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + eax*4 + 0x38]
mov eax, dword [esp + 0x10]
cmp eax, 0xfffffff9
mov eax, dword [esp + 0x30]
setle cl
xor edx, edx
sub esi, ecx
cmp esi, eax
mov eax, dword [esp + 0x54]
sete dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jle 0x100336f5
inc dword [esp + 0x5c]
cmp dword [esp + 0x5c], ebx
jle 0x100336db
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
movzx eax, byte [esp + 0x27]
add eax, 0x18
add eax, ecx
mov edx, dword [ecx + esi]
mov ecx, dword [ecx + esi + 0x14]
mov dword [esp + 0x3c], eax
call fcn.10032f2b
mov dword [esp + 0x18], 1
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ebx
jmp 0x1003391a
mov dword [esp + 0x10], 0xfa814b11
mov dword [esp + 0x30], 0xfffffffb
mov dword [esp + 0x14], ebx
jmp 0x100337da
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x4c], 0x39beb064
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x100337ca
mov dword [esp + 0x50], ebx
jmp 0x10033907
push dword [esp + 0x40]
movdqa xmm0, xmmword [0x10073990]
lea eax, [esp + 0x164]
push eax
lea eax, [esp + 0x158]
mov dword [esp + 0xb0], ebx
push eax
push ebx
lea ecx, [esp + 0xb8]
mov dword [esp + 0xbc], ebx
movdqu xmmword [esp + 0x160], xmm0
mov dword [esp + 0xc0], ebx
call fcn.1000dfe5
mov dword [esp + 0x14], 0xa0627e80
mov dword [esp + 0x14], 0xed23c5ad
mov dword [esp + 0x14], ebx
jmp 0x10033859
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xf8], 0xfffffff9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x10033846
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x20], ebx
jne 0x1003389c
mov eax, dword [esp + 0x50]
mov ecx, 0x8e5faece
sub ecx, eax
mov eax, dword [esp + 0xfc]
sub ecx, eax
mov eax, dword [esp + 0x50]
push 0
pop edx
sets dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x10], ebx
jne 0x1003389c
mov eax, ebx
jmp 0x1003389f
xor eax, eax
inc eax
cmp eax, 7
mov eax, dword [esp + 0x50]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [esp + 0xa8]
setge dl
mov dword [eax + 4], edx
xor edx, edx
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0xfc]
cmp eax, 0x7440271d
mov eax, dword [esp + 0x20]
setne dl
xor ecx, ecx
cmp eax, 6
setne cl
xor eax, eax
cmp ecx, edx
lea ecx, [esp + 0xa8]
setle al
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], eax
call fcn.1000ba88
inc dword [esp + 0x50]
cmp dword [esp + 0x50], 0x10
jle 0x100337e9
mov eax, dword [esp + 0x10]
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffe5
jg 0x100337b4
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x80]
add eax, esi
push 3
mov dword [esp + 0x44], eax
call fcn.1000ba05
mov dword [esp + 0x20], ebx
mov dword [esp + 0x3c], 0xce5aba8d
mov dword [esp + 0x10], ebx
jmp 0x10033965
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x80]
mov dword [eax + ecx*4], 0xfdf99ff6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1003394f
mov dword [esp + 0x10], ebx
jmp 0x1003397e
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x64], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10033972
mov dword [esp + 0x70], edi
cmp dword [esp + 0x70], ebx
jl 0x10033b09
xor esi, esi
inc esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x30], 0xfffffff8
mov dword [esp + 0x18], ebx
jmp 0x10033af1
mov dword [esp + 0x20], 0x22b60780
mov dword [esp + 0x14], ebx
jmp 0x100339c9
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x44], esi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x100339bd
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x100339eb
push 0x2600
push 0x417
push ebx
call dword [sym.imp.USER32.dll_InflateRect]
mov dword [esp + 0x44], edi
cmp dword [esp + 0x44], ebx
jl 0x10033aed
mov dword [esp + 0x20], ebx
xor edx, edx
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x80]
push 1
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx + eax*4]
cmp eax, dword [ecx]
mov eax, dword [esp + 0x48]
setl dl
xor ebx, ebx
cmp edx, esi
mov esi, 0xf6f97812
setle bl
xor ecx, ecx
cmp ebx, eax
setge cl
xor edx, edx
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
cmp eax, 0x806aa1c3
setne dl
imul edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x84]
dec edx
neg edx
sbb edx, edx
sub esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x74]
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0x48]
setg cl
xor edx, edx
add eax, ecx
mov ecx, dword [esp + 0x34]
imul ecx, eax
mov eax, dword [esp + 0x4c]
cmp ecx, eax
setl dl
xor eax, eax
cmp esi, edx
setl al
xor edx, edx
mov dword [esp + 0x24], eax
xor ebx, ebx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x84]
cmp dword [ecx + eax*4], ebx
sete dl
xor eax, eax
cmp edx, dword [ecx + esi*4]
pop esi
setne al
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x20]
add edx, dword [eax + ecx*4]
xor ecx, ecx
mov eax, dword [esp + 0x44]
cmp edx, eax
setle cl
neg ecx
mov dword [esp + 0x3c], ecx
dec dword [esp + 0x44]
jns 0x100339f9
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jle 0x100339af
dec dword [esp + 0x70]
jns 0x10033996
mov esi, dword [esp + 0x34]
lea ecx, [esp + 0x80]
call fcn.1000ba88
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x10033b3a
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_PlayEnhMetaFile]
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x10033b4d
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
push edi
mov dword [eax], ecx
lea ecx, [esp + 0x104]
call fcn.1000ba05
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x10], ebx
jmp 0x10033b86
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x100]
mov dword [eax + ecx*4], 0xdd33a4a9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10033b70
mov dword [esp + 0x10], ebx
jmp 0x10033ba5
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x8c], 8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10033b92
mov dword [esp + 0x94], ebx
jmp 0x10033cf9
mov dword [esp + 0x18], edi
mov dword [esp + 0x34], 0xfff6
mov dword [esp + 0x20], ebx
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x10033beb
push 0x126a
push ebx
push 0x1dad
push ebx
push 0x6da
push ebx
call dword [sym.imp.KERNEL32.dll_CompareStringW]
mov dword [esp + 0x18], ebx
jmp 0x10033ce7
mov dword [esp + 0x20], 1
lea ecx, [esp + 0xe0]
push 1
call fcn.1000ba05
mov dword [esp + 0x20], 0xbc4433ac
mov dword [esp + 0x20], 0x8f0bd907
mov dword [esp + 0x20], 5
mov dword [esp + 0x14], ebx
jmp 0x10033c3e
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xe0]
mov dword [eax + ecx*4], 0xfffffff9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x10033c28
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
neg edx
mov eax, dword [esp + 0x94]
mov eax, dword [esp + 0x100]
sbb edx, edx
neg edx
mov eax, dword [eax]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], ebx
je 0x10033c74
mov eax, dword [esp + 0x94]
mov eax, dword [esp + 0x34]
xor ecx, ecx
inc ecx
sub ecx, eax
mov eax, dword [esp + 0xe0]
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [esp + 0x94]
cmp eax, 1
setle cl
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov eax, dword [esp + 0x20]
add eax, 0x417612d2
add eax, edx
cmp eax, 0x7d41
setne cl
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], ebx
je 0x10033cc7
mov eax, dword [esp + 0x94]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0xe0]
mov dword [esp + 0x20], 0xffffffff
cmp dword [esp + 0x20], ebx
call fcn.1000ba88
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jle 0x10033bf4
inc dword [esp + 0x94]
cmp dword [esp + 0x94], 1
jle 0x10033bb8
lea ecx, [esp + 0x100]
call fcn.1000ba88
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
shr eax, 2
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [ecx + esi]
mov dword [esp + 0x140], eax
mov eax, dword [ecx + esi + 4]
mov dword [esp + 0x144], eax
mov eax, dword [ecx + esi + 8]
mov dword [esp + 0x148], eax
mov eax, dword [ecx + esi + 0xc]
mov dword [esp + 0x14c], eax
je 0x10033d7d
mov edi, dword [esp + 0x40]
sub esi, edi
mov ecx, dword [edi]
mov edx, ebx
and edx, 3
mov edx, dword [esp + edx*4 + 0x140]
call fcn.10032f2b
inc ebx
mov dword [esi + edi], eax
lea edi, [edi + 4]
cmp ebx, dword [esp + 0x28]
jb 0x10033d56
jmp 0x10033d7d
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov ecx, dword [esp + 0x164]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret