Function at 0x10021289
Capabilities:
Connect pipe
Create thread
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x25c
push ebx
push esi
push edi
mov dword [ebp - 0x10], 0xfffa
xor ebx, ebx
push 3
mov dword [ebp - 0x14], 0x2971c1e
mov dword [ebp - 0x13c], edx
mov dword [ebp - 0x138], ecx
mov dword [ebp - 8], ebx
pop edi
jmp 0x100212ca
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1fc], 0x8114
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x100212b9
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ebx
jmp 0x100212eb
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1fc], 0x39ed
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x100212da
mov dword [ebp - 4], 0x90ac204e
mov dword [ebp - 0x10], 0xfffffff9
mov dword [ebp - 0xc], 0xbca0becc
push 1
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ebx
pop esi
jmp 0x10021461
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], ebx
jmp 0x10021328
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x80], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x1002131e
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x1002134d
push ebx
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_CreateEnhMetaFileW]
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x80]
dec eax
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x10]
jl 0x10021364
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x7c]
xor edx, edx
cmp eax, 4
mov eax, dword [ebp - 0x80]
setge dl
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x80]
cmp edx, eax
mov dword [ebp - 8], ebx
setle cl
cmp ecx, 0xbe4438b
jne 0x100213eb
jmp 0x1002139c
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1ac], 0x2206
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x1002138b
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x100213be
push ebx
push 0xcb4
push ebx
push ebx
push 0x1964
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x10], ebx
jmp 0x100213cf
mov eax, dword [ebp - 4]
mov dword [ebp - 0x1ac], eax
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfffffff0
jne 0x100213c3
jmp 0x1002145e
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xb4], 0x6de6b933
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x100213da
cmp dword [ebp - 0xb4], ebx
jne 0x1002142e
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x7c]
imul eax, dword [ebp - 0xb4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
imul eax, dword [ebp - 0x10]
imul eax, eax, 0xab72
test eax, eax
je 0x10021423
mov ecx, esi
cmp dword [ebp - 0x80], ebx
jne 0x10021425
mov ecx, ebx
mov eax, dword [ebp - 0xc]
sub eax, ecx
mov ecx, ebx
je 0x10021430
mov ecx, esi
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x2c]
setge dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], ebx
jmp 0x10021459
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x80]
mov dword [ebp - 0x14], eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jle 0x1002144c
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xffffffef
jne 0x10021313
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], 0xfffa
mov dword [ebp - 0x14], 0x2971c1e
mov dword [ebp - 4], 0x14a02569
mov dword [ebp - 0x14], 0xfffffffc
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x10], 0x211521fa
mov dword [ebp - 8], 5
mov dword [ebp - 0xc], ebx
jmp 0x100214b6
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x70], 0xfffc
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x100214a8
mov dword [ebp - 0xc], ebx
jmp 0x100214cd
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x9c], ebx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x100214c0
mov dword [ebp - 0xc], ebx
jmp 0x100214e6
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x48], 0x93e75cb5
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x100214d8
mov dword [ebp - 4], ebx
jmp 0x100214fe
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x70], 0xa136
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x100214f0
mov ecx, dword [ebp - 0x9c]
xor edx, edx
mov eax, dword [ebp - 0x9c]
cmp ecx, eax
setge dl
mov dword [ebp - 0x48], edx
xor edx, edx
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, dword [ebp - 0x9c]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x30]
setge cl
xor edx, edx
cmp ecx, 5
setl dl
sub eax, edx
cmp esi, eax
mov esi, dword [ebp - 0x14]
sbb eax, eax
xor edx, edx
inc eax
sub esi, eax
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 4]
sub esi, eax
mov eax, dword [ebp - 4]
cmp ecx, eax
mov eax, 0xffff
setg dl
cmp edx, esi
jl 0x10021656
xor esi, esi
inc esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 8], ebx
jmp 0x10021591
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xf8], 0x34832001
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10021580
mov dword [ebp - 4], 0xfffffffb
cmp dword [ebp - 4], 7
jl 0x10021644
mov dword [ebp - 0x2c], 0x2585fafe
xor edx, edx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], ebx
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
cmp eax, ecx
setge dl
sub edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp eax, edx
setg cl
cmp ecx, 0x494d
jle 0x1002160a
cmp dword [ebp - 0x14], ebx
jne 0x1002160a
mov esi, ebx
mov eax, dword [ebp - 0x28]
xor edx, edx
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
cmp ecx, eax
push 1
setge dl
xor ecx, ecx
cmp edx, esi
pop esi
setle cl
xor eax, eax
cmp ecx, edi
setne al
mov dword [ebp - 0xf8], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], 7
jge 0x100215a7
xor esi, esi
inc esi
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xc], ebx
mov dword [ebp - 4], ebx
jmp 0x10021767
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x10], 0x10
cmp dword [ebp - 0x10], 0x17
jge 0x10021641
xor esi, esi
inc esi
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 4], 0x196c9a5c
cmp dword [ebp - 0x70], ebx
jne 0x100216fa
mov eax, dword [ebp - 0x70]
xor ebx, ebx
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x48]
cmp ecx, eax
mov eax, dword [ebp - 0x48]
setl bl
sub ebx, 0xd73c
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
cmp ebx, eax
mov eax, dword [ebp - 0x14]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, 0xde77bf6b
setne cl
cmp eax, ecx
sbb eax, eax
xor edx, edx
neg eax
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x2c]
cmp eax, ecx
setg dl
sub edx, dword [ebp - 0x28]
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
imul eax, edx, 0xfffb
test eax, eax
je 0x100216ef
mov ecx, esi
cmp dword [ebp - 0x48], ebx
jne 0x100216f1
mov ecx, ebx
mov eax, dword [ebp - 8]
mov edx, ebx
sub ecx, eax
je 0x100216fc
mov edx, esi
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
mov dword [ebp - 0x48], ecx
add ecx, 0x3d58cdd2
mov eax, dword [ebp - 0x28]
cmp eax, ecx
setl dl
add edx, 0x6ec7
je 0x10021724
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, esi
mov eax, 0xffff
setle cl
cmp eax, ecx
sbb eax, eax
neg eax
sub eax, dword [ebp - 4]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 4], eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x17
jl 0x10021674
jmp 0x10021644
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x100], 0x5755261f
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10021756
mov dword [ebp - 4], ebx
jmp 0x10021782
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xa8], 0x5dd68647
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10021771
mov dword [ebp - 4], 0x15
jmp 0x100218a6
mov dword [ebp - 0x10], 0x1d8f8f57
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 8], ebx
jmp 0x100217b3
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xec], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x100217a6
cmp dword [ebp - 0x100], esi
jle 0x100217c3
mov eax, dword [ebp - 4]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], 0x734895c4
mov dword [ebp - 8], ebx
jmp 0x100217e3
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x17c], 0xfff6
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x100217d2
mov eax, dword [ebp - 0x17c]
xor edx, edx
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp eax, 0x30b137d3
mov eax, dword [ebp - 0x17c]
setne dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp eax, ecx
sbb eax, eax
neg eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x17c]
mov eax, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edi
jmp 0x10021897
mov dword [ebp - 0x10], 2
cmp dword [ebp - 0x10], ebx
jl 0x10021884
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov edx, dword [ebp + eax*4 - 0xec]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0xec]
cmp edx, eax
setne cl
mov dword [ebp - 0x14], ecx
dec dword [ebp - 0x10]
jns 0x10021861
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10021894
push ebx
call dword [sym.imp.KERNEL32.dll_GetThreadPriority]
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x18
jg 0x10021855
inc dword [ebp - 0xa8]
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xfffffff6
jg 0x10021793
mov dword [ebp - 8], ebx
jmp 0x100218c6
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x214], 0x8114
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x100218b5
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ebx
jmp 0x10021953
push 5
pop eax
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x20], 0xed23b618
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x20], 0x6ff23b1a
mov dword [ebp - 0x20], 0xfffffffe
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x20], 0x165352f7
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x20], 0xbd0a7084
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x14], 0xfffffff6
mov dword [ebp - 0x20], 0x8f6c
mov dword [ebp - 0x190], 0x3342eb9
dec dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x214], 0x39ed
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x100218d6
mov dword [ebp - 0x14], 0x3dfad5be
mov dword [ebp - 0x2c], 0x51dd2e91
mov dword [ebp - 0x14], 0x2d38ca8c
mov dword [ebp - 0x14], 0xdfd99643
mov dword [ebp - 0x14], 0x14a3a6d7
mov dword [ebp - 0xc], ebx
jmp 0x10021991
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x1b8], esi
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x10021984
mov dword [ebp - 0xc], ebx
jmp 0x100219ac
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xd4], 0xfffffffd
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x1002199b
mov dword [ebp - 0xc], ebx
jmp 0x100219c5
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x44], 0xcf1c
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x100219b7
push 2
pop ecx
push 0xfffffffffffffff8
mov dword [ebp - 0xc], ebx
pop edi
jmp 0x100219e2
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x1a4], edi
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ecx
jl 0x100219d5
mov dword [ebp - 0xd0], ecx
cmp dword [ebp - 0xd0], ebx
jl 0x10021a0c
mov eax, dword [ebp - 0xd0]
cmp dword [ebp + eax*4 - 0x1b8], ebx
jne 0x10021a0c
dec dword [ebp - 0xd0]
jns 0x100219f5
cmp dword [ebp - 0x44], ebx
je 0x10021a1b
mov eax, esi
cmp dword [ebp - 0xd0], ebx
jne 0x10021a1d
mov eax, ebx
mov dword [ebp - 0x14], 0xf0a9
mov edx, dword [ebp - 0x44]
neg edx
sub edx, eax
mov eax, dword [ebp - 0x14]
neg edx
push 0
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setl cl
xor eax, eax
cmp ecx, 0xfffffffb
setle al
xor edx, edx
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
setle dl
mov dword [ebp - 0x14], edx
xor edx, edx
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
mov eax, dword [ebp - 0x44]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x1b8]
pop edx
setle bl
sub ebx, 0x4fa72d50
neg ebx
sbb ebx, ebx
xor ecx, ecx
inc ebx
cmp eax, ebx
mov eax, dword [ebp - 0x44]
setne cl
add eax, ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc8]
sub eax, dword [ebp - 0x14]
cmp esi, eax
sbb eax, eax
neg eax
mov eax, dword [ebp - 0x44]
sets dl
xor ecx, ecx
cmp edx, eax
setl cl
xor ebx, ebx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 8], ebx
jmp 0x10021ad5
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x3c], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10021acb
mov dword [ebp - 0x3c], 0xffffffef
jmp 0x10021af6
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x10021af3
push ebx
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 0xfffffff1
jne 0x10021ae3
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x30]
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp ecx, 0x97f0
setne al
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x30], 0xd52a2848
mov dword [ebp - 0x14], 0xdf860956
mov dword [ebp - 0x14], 4
mov dword [ebp - 4], ebx
jmp 0x10021b46
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x6c], esi
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x10021b3c
mov dword [ebp - 4], ebx
jmp 0x10021b62
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xfc], 0xc0d133f2
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10021b51
mov dword [ebp - 0x30], 5
mov eax, dword [ebp - 0x30]
dec eax
jne 0x10021b7c
cmp dword [ebp - 0x6c], ebx
jne 0x10021b7c
mov eax, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
xor ecx, ecx
mov eax, dword [ebp - 0x6c]
mov edx, esi
mov dword [ebp - 0xfc], esi
mov eax, dword [ebp - 0x6c]
sub edx, eax
mov eax, dword [ebp - 0x68]
cmp edx, eax
setge cl
xor edx, edx
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setne dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 0xdfe9
setl al
shl eax, 3
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x30], 0x491d0b6b
mov dword [ebp - 0x18], 0xfffffffb
mov dword [ebp - 0x10], 0xe229edca
mov dword [ebp - 0x28], 0xd5fba252
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], ebx
jmp 0x10021c02
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x50], 0xdec9
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x10021bf4
push 3
mov dword [ebp - 0xc], ebx
pop ecx
jmp 0x10021c21
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x22c], 0xfffffffd
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ecx
jl 0x10021c10
mov dword [ebp - 0xc], ebx
jmp 0x10021c3c
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x110], 0x46e9
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ecx
jl 0x10021c2b
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
neg eax
sbb eax, eax
neg eax
cmp eax, ecx
mov ecx, 0xc1d99ea5
sbb eax, eax
inc eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
sub eax, 0x5d9f20c7
cmp ecx, eax
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x50]
sbb edx, edx
neg edx
sub edx, eax
mov eax, dword [ebp - 0x50]
imul ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x50]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x50]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x4c]
setle dl
xor ecx, ecx
cmp edx, eax
setge cl
cmp ecx, 0xf30385d0
je 0x10021d5b
mov dword [ebp - 0x14], 0x5cf455db
mov dword [ebp - 0x20], 0xc2657a77
mov dword [ebp - 0x14], 0x7b249e3c
mov dword [ebp - 0x2c], 0x90538e0e
mov dword [ebp - 0x20], 0xaa9b2235
mov dword [ebp - 8], ebx
jmp 0x10021cf5
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1f0], 0xc359
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10021ce4
mov eax, dword [ebp - 0x28]
xor ecx, ecx
inc dword [ebp - 0x110]
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0x228], edx
mov eax, dword [ebp - 0x1e8]
cmp eax, 0xd707
setg cl
cmp ecx, edx
jl 0x10021d2d
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 4], 0xbbb3
cmp dword [ebp - 4], 0x2bd6
jge 0x10021d47
mov eax, esi
cmp dword [ebp - 4], ebx
jne 0x10021d49
mov eax, ebx
neg eax
sub eax, dword [ebp - 0x2c]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
jmp 0x10021df2
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], 0xffffffe8
cmp dword [ebp - 4], 0xfffffff3
jge 0x10021df2
mov edi, 0xffff
mov dword [ebp - 0x2c], 8
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x30], 0xffffffff
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x110]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x10]
sub ecx, edi
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x50]
setle dl
xor ecx, ecx
cmp eax, edx
setle cl
cmp ecx, 0xfffffff7
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x28]
jg 0x10021dc7
mov eax, dword [ebp - 0x110]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
add edx, 0x19d465f
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setge cl
mov dword [ebp - 0x30], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xfffffff3
jl 0x10021d74
push 0xfffffffffffffff8
pop edi
push 3
mov dword [ebp - 8], ebx
pop ecx
jmp 0x10021e07
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x240], esi
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x10021dfa
mov dword [ebp - 8], 0xfe0a8eac
or edx, 0xffffffff
mov dword [ebp - 4], 0x4c90d297
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], esi
mov dword [ebp - 0x20], 0x790e8648
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0xc], 0x2038e85a
push 9
pop eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x14], 0x9fe5
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x20], 0x74e80031
mov dword [ebp - 0x18], 0xfffffff6
mov dword [ebp - 0x28], 0x68451f1e
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], 0x3132d683
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], ebx
jmp 0x10021e85
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x220], 0x3588c556
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x10021e74
mov dword [ebp - 8], ebx
jmp 0x10021ea0
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x10021e9d
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
inc dword [ebp - 8]
cmp dword [ebp - 8], 0xd
jle 0x10021e8f
mov eax, dword [ebp - 8]
mov dword [ebp - 0x30], 0x3ca4d9a5
cmp dword [ebp - 0x30], ebx
jne 0x10021eb8
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
neg ecx
sub ecx, eax
mov dword [ebp - 0x21c], ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 4]
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0xc], ebx
je 0x10021ef3
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x10021f34
push ebx
push ebx
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringByteLen]
jmp 0x10021f34
mov dword [ebp - 0x18], 2
jmp 0x10021f2e
mov dword [ebp - 0x10], 0x11
jmp 0x10021f25
mov dword [ebp - 8], ebx
jmp 0x10021f1c
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x10021f19
push ebx
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x13
jg 0x10021f0a
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x14
jle 0x10021f05
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffef
jl 0x10021efc
mov edi, dword [sym.imp.KERNEL32.dll_GetOEMCP]
mov dword [ebp - 0x18], ebx
jmp 0x10022385
mov dword [ebp - 4], ebx
mov dword [ebp - 0x2c], 0xd8143836
mov dword [ebp - 0x10], 0x9b4af7bd
mov dword [ebp - 0x20], 0x5199242
mov dword [ebp - 8], ebx
jmp 0x10021f70
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x25c], 0xffffffff
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x10021f5f
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], 0x19
je 0x100220f6
cmp dword [ebp - 0x18], 2
jle 0x10021f42
mov dword [ebp - 4], 0x90ac204e
mov dword [ebp - 0x10], 0xfffffff9
mov dword [ebp - 0xc], 0xbca0becc
mov dword [ebp - 0x20], ebx
mov dword [ebp - 4], ebx
jmp 0x10022517
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 8], ebx
jmp 0x100223c7
cmp dword [ebp - 8], 2
jl 0x100223ba
cmp dword [ebp - 4], 0xffffffef
jne 0x100223af
push 8
pop edx
mov dword [ebp - 4], 0xffffffff
push 3
mov dword [ebp - 8], edx
mov dword [ebp - 8], ebx
pop ecx
jmp 0x10022547
cmp dword [ebp - 8], ecx
jl 0x10022536