Function at 0x10021a8d
Capabilities:
Get disk information
Get session user name

Disassembly:
mov eax, 0x100630b1
call fcn.10062610
sub esp, 0x258
movdqa xmm0, xmmword [0x1000c340]
lea eax, [ebp - 0x184]
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
xor ebx, ebx
push dword [ebp + 8]
mov dword [ebp - 0x48], ecx
lea ecx, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x194]
mov dword [ebp - 0x20], 0x80d4
push eax
push ebx
mov dword [ebp - 0x40], edx
movdqu xmmword [ebp - 0x194], xmm0
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
call fcn.10023815
mov dword [ebp - 4], ebx
mov dword [ebp - 0x2c], 0x4765
cmp dword [ebp - 0x2c], 0x4ad8
jle 0x10021b56
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov edi, ebx
mov eax, edi
mov dword [ebp - 0x38], ebx
xor eax, esi
mov dword [ebp - 0x14], eax
mov esi, eax
mov eax, esi
mov ecx, 0x1060c478
or eax, ebx
cdq
push edx
push eax
call fcn.10011c95
inc ebx
cmp ebx, 0xf61
jl 0x10021b0b
mov esi, dword [ebp - 0x24]
inc edi
push 0
pop ebx
cmp edi, 0x5620
jl 0x10021aff
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x2010
jl 0x10021afd
push ebx
push 0xee6
push 0x2320
push 0x1f0d
call dword [sym.imp.GDI32.dll_SetDIBColorTable]
mov dword [ebp - 0x34], 0xffffffff
mov byte [ebp - 4], 1
cmp dword [ebp - 0x2c], 0x4642
jge 0x10021b97
mov edx, 0x10008cb0
mov ecx, 0x1060c478
call fcn.100147fa
jmp 0x10021b97
push 2
pop edi
xor esi, esi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x2c], 0xf61949f
lea ecx, [ebp - 0x184]
push edi
inc esi
call fcn.10011fea
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x38], 0x5bc6833e
mov dword [ebp - 0x1c], ebx
jmp 0x10021bd5
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x184]
mov dword [eax + ecx*4], 0xfffffffc
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x10021bc2
mov dword [ebp - 0x1c], ebx
jmp 0x10021bf0
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1d0], 0xfffffff9
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10021bdf
mov ecx, esi
cmp dword [ebp - 0x20], ebx
jne 0x10021bff
mov ecx, ebx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x24], eax
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x20]
dec eax
sub eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
xor edx, edx
add eax, 2
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x20]
setl cl
xor edx, edx
imul ecx, ecx, 0x2bb1
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setne dl
xor ecx, ecx
cmp edx, eax
setg cl
sub ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], ecx
xor ecx, ecx
cmp dword [ebp - 0x38], eax
setne cl
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x34], 4
cmp dword [ebp - 0x34], 0xfffffffd
je 0x10021d57
mov edi, dword [ebp - 0x6c]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x1c], 0xcc86f803
push 3
mov dword [ebp - 0x38], 5
mov dword [ebp - 0x1c], ebx
pop ecx
jmp 0x10021c9c
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x144], 0x74f9af39
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jl 0x10021c8b
mov dword [ebp - 0x1c], ebx
jmp 0x10021cb3
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1c4], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x10021ca6
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + 8]
sub edx, dword [edi + 0xc]
cmp edx, eax
sete cl
xor edx, edx
dec ecx
mov dword [ebp - 0x1d0], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x144]
imul eax, dword [ebp - 0x13c]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
mov eax, dword [ebp - 0x1c]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setle cl
sub eax, ecx
sub eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x2c]
jne 0x10021d34
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1bc]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setl dl
mov dword [edi + 0xc], edx
mov dword [ebp - 0x38], edx
dec dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0xfffffffd
jne 0x10021c6f
lea ecx, [ebp - 0x184]
call fcn.10012046
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.10012046
push dword [ebp + 8]
movdqa xmm0, xmmword [0x1000c320]
lea eax, [ebp - 0x1a4]
mov dword [ebp - 0x14], 0xe0648261
lea ecx, [ebp - 0xd0]
push eax
mov dword [ebp - 0x44], 0xf2887cf2
lea eax, [ebp - 0x1b4]
mov dword [ebp - 0x44], 0xfffffffb
push eax
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], 0xf5872d9e
push ebx
movdqu xmmword [ebp - 0x1b4], xmm0
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0xc8], ebx
call fcn.10023815
mov dword [ebp - 0x24], 0xfffffffe
mov dword [ebp - 0x14], 0xffffffe7
jmp 0x10021e04
mov dword [ebp - 0x38], 0x6df3
cmp dword [ebp - 0x38], ebx
jne 0x10021e0a
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10021e01
push esi
push ebx
push 0xc9
call dword [sym.imp.USER32.dll_SetWindowRgn]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffffa
jl 0x10021ddf
inc dword [ebp - 0x24]
lea ecx, [ebp - 0xd0]
call fcn.10012046
mov eax, dword [0x1060d5f0]
test al, 1
jne 0x10021eaf
or eax, esi
mov dword [0x1060d5f0], eax
push ebx
mov dword [ebp - 4], 3
push ebx
mov dword [0x1060d5d0], ebx
mov dword [0x1060d5d4], ebx
call fcn.10014720
mov dword [0x1060d5d0], eax
mov dword [0x1060d5d8], ebx
mov dword [0x1060d5e0], ebx
mov byte [ebp - 4], 5
mov ecx, 0x1060d5d8
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0xac]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x154]
mov dword [0x1060d5ec], 0x3f800000
push eax
mov dword [0x1060d5dc], ebx
call fcn.100144c4
push 0x10063abb
mov dword [0x1060d5e4], 7
mov dword [0x1060d5e8], 8
call fcn.1004d31c
or dword [ebp - 4], 0xffffffff
pop ecx
mov dword [ebp - 0x20], 0xfffffff7
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x2c], 0x7223b16a
push esi
call fcn.10011fea
mov dword [ebp - 4], 6
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x14], ebx
jmp 0x10021eeb
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x100]
mov dword [eax + ecx*4], 0x4de8cc19
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10021ed8
mov dword [ebp - 0x30], 0x58df
cmp dword [ebp - 0x30], 0x5c16
jle 0x10021f66
mov dword [ebp - 0x14], ebx
mov eax, ebx
mov dword [ebp - 0x24], 0x413a
mov dword [ebp - 0x2c], eax
mov edi, ebx
mov ecx, edi
shl eax, cl
lea ecx, [ebp - 0x1f4]
cdq
push edx
push eax
call fcn.1000d7ce
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10021f2d
mov eax, dword [eax]
push eax
call fcn.1004d346
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x1f4]
call fcn.100125d2
mov eax, dword [ebp - 0x2c]
inc edi
cmp edi, 0x4cb9
jl 0x10021f11
mov edi, dword [ebp - 0x14]
add eax, edi
dec dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
jne 0x10021f0f
inc edi
mov dword [ebp - 0x14], edi
cmp edi, 0x181e
jl 0x10021f03
mov byte [ebp - 0x15], bl
mov dword [ebp - 0x2c], 0x9e1
cmp dword [ebp - 0x2c], 0xc50
jle 0x10021faf
call dword [sym.imp.KERNEL32.dll_GetOEMCP]
mov edi, ebx
mov dword [ebp - 0x24], ebx
mov ebx, edi
mov edi, 0x772a
mov eax, ebx
mov ecx, 0x1060c478
cdq
push edx
push eax
call fcn.10011c95
dec ebx
dec edi
jne 0x10021f8b
mov edi, dword [ebp - 0x24]
inc edi
mov dword [ebp - 0x24], edi
cmp edi, 0x1102
jl 0x10021f84
xor ebx, ebx
cmp byte [ebp - 0x15], 0
je 0x10021fbb
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov byte [ebp - 4], 7
cmp dword [ebp - 0x2c], 0x895
jge 0x10021ff8
mov edx, 0x10008d84
mov ecx, 0x1060c478
call fcn.100147fa
jmp 0x10021ff8
cmp dword [ebp - 0x30], 0x57d2
jge 0x1002200c
push 0x10008d38
call fcn.1004d346
pop ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], esi
cmp dword [ebp - 0x2c], ebx
je 0x10022026
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
neg ecx
cmp ecx, eax
setge dl
xor ecx, ecx
add edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp edx, eax
setne cl
cmp ecx, 0xfb07d0d1
sbb eax, eax
xor edx, edx
neg eax
imul eax, dword [ebp - 0x20]
imul ecx, eax, 0x7576
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x100]
lea ecx, [ebp - 0x100]
setle dl
or dword [ebp - 4], 0xffffffff
mov dword [eax], edx
call fcn.10012046
imul eax, dword [ebp - 0x48], 0x2710
add eax, dword [ebp - 0x40]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x1c], ebx
jmp 0x1002209d
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x5c], 0xaf1124f0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x1002208f
mov dword [ebp - 0x1c], ebx
jmp 0x100220b8
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xb8], 0xf2c29a3d
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x100220a7
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x100220ce
push ebx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov dword [ebp - 0xb4], ebx
cmp dword [ebp - 0xb4], ebx
jg 0x1002225d
mov dword [ebp - 0x30], 0x2ca3
cmp dword [ebp - 0x30], 0x3006
jle 0x10022178
mov ecx, ebx
mov dword [ebp - 0x14], ebx
mov eax, ebx
mov dword [ebp - 0x2c], ebx
mov edi, ebx
mov dword [ebp - 0x24], ebx
cdq
idiv edi
mov dword [ebp - 0x38], ebx
mov edi, ebx
mov eax, edx
mov dword [ebp - 0x28], eax
and eax, edi
or eax, ecx
lea ecx, [ebp - 0x20c]
cdq
push edx
push eax
call fcn.1000d7ce
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002212c
mov eax, dword [eax]
push eax
call fcn.1004d346
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x20c]
call fcn.100125d2
mov ecx, dword [ebp - 0x14]
inc edi
mov eax, dword [ebp - 0x28]
cmp edi, 0x740a
jl 0x10022110
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
inc edi
mov dword [ebp - 0x24], edi
cmp edi, 0x218
jl 0x10022103
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x4b10
jl 0x100220fe
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x3707
jl 0x100220f9
mov dword [ebp - 0x28], esi
cmp dword [ebp - 0x30], 0x29f8
jge 0x1002218f
push 0x10008de0
call fcn.1004d346
pop ecx
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x2c], 0xe37
cmp dword [ebp - 0x2c], 0xfd6
jle 0x100221f7
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x24], ebx
and eax, edi
lea ecx, [ebp - 0x224]
cdq
push edx
push eax
call fcn.1000d7ce
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100221cc
mov eax, dword [eax]
push eax
call fcn.1004d346
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x224]
call fcn.100125d2
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x6d1c
jl 0x100221b2
inc edi
cmp edi, 0x41f
jl 0x100221ad
mov dword [ebp - 0x28], ebx
jmp 0x10022235
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x10022232
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x30], ebx
jmp 0x10022221
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x5c], 0xe1dfe009
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], esi
jl 0x10022213
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x5c]
dec dword [ebp - 0x14]
jns 0x1002220b
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jle 0x100221fc
cmp dword [ebp - 0x2c], 0xd26
jge 0x1002224e
push 0x10008e28
call fcn.1004d346
pop ecx
or dword [ebp - 4], 0xffffffff
inc dword [ebp - 0xb4]
jmp 0x100220d4
lea eax, [ebp - 0x60]
push eax
call fcn.1002323a
mov edi, dword [eax]
mov dword [ebp - 0x14], 0xec2e0cf5
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10022285
push 0x5c2
push ebx
push ebx
call dword [sym.imp.GDI32.dll_TranslateCharsetInfo]
mov dword [ebp - 0x14], ebx
jmp 0x100222a1
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x1002229e
push 0x17a1
call dword [sym.imp.USER32.dll_GetKeyboardType]
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffec
jg 0x1002228a
test edi, edi
je 0x100223d3
mov dword [ebp - 0x28], 0x5540d7f8
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], 0xffffffe3
jle 0x100223c8
push 3
lea ecx, [ebp - 0xe8]
call fcn.10011fea
mov dword [ebp - 4], 0xf
mov dword [ebp - 0x14], ebx
jmp 0x100222f2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xe8]
mov dword [eax + ecx*4], 0xfffffff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x100222df
mov dword [ebp - 0x14], 0x571b
cmp dword [ebp - 0x14], 0x5757
jle 0x1002236b
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov eax, ebx
mov dword [ebp - 0x2c], ebx
mov edi, ebx
mov dword [ebp - 0x40], ebx
mov ecx, edi
lea ebx, [eax + esi]
mov esi, dword [ebp - 0x40]
sar ebx, cl
mov eax, ebx
mov ecx, 0x1060c478
or eax, esi
cdq
push edx
push eax
call fcn.10011c95
inc esi
cmp esi, 0x3b68
jl 0x10022321
mov esi, dword [ebp - 0x24]
inc edi
mov eax, dword [ebp - 0x2c]
push 0
pop ebx
cmp edi, 0x5dca
jl 0x10022314
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x3991
jl 0x10022312
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x758a
jl 0x1002230d
push ebx
call dword [sym.imp.ADVAPI32.dll_GetLengthSid]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0xe8]
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x14], 0x5340
mov dword [eax + 4], ecx
jge 0x100223b1
mov edx, 0x10008e68
mov ecx, 0x1060c478
call fcn.100147fa
jmp 0x100223b1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe8]
call fcn.10012046
dec dword [ebp - 0x28]
jmp 0x100222bc
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
jmp 0x1002312f
push 2
pop edi
push edi
lea ecx, [ebp - 0x88]
call fcn.10011fea
mov dword [ebp - 4], 0x12
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x1c], ebx
jmp 0x10022404
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x88]
mov dword [eax + ecx*4], 0x204e
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x100223f1
mov dword [ebp - 0x1c], ebx
jmp 0x1002241c
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x58], 0xd59e57ad
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x1002240e
mov dword [ebp - 0x54], esi
cmp dword [ebp - 0x54], ebx
jl 0x1002244b
mov dword [ebp - 0x38], 0xfffffffb
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x38], 0x85a9576c
dec dword [ebp - 0x54]
jns 0x10022429
mov dword [ebp - 0x34], 0x6837
cmp dword [ebp - 0x34], 0x6a98
jle 0x100224cb
mov dword [ebp - 0x2c], ebx
mov edi, ebx
mov dword [ebp - 0x28], ebx
mov ecx, edi
mov dword [ebp - 0x30], 0x6a0
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x24], ecx
mov eax, edi
sar eax, cl
lea ecx, [ebp - 0x254]
cdq
push edx
push eax
call fcn.1000d7ce
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002248e
mov eax, dword [eax]
push eax
call fcn.1004d346
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x254]
call fcn.100125d2
mov ecx, dword [ebp - 0x24]
dec ecx
dec dword [ebp - 0x30]
mov dword [ebp - 0x24], ecx
jne 0x10022472
mov edi, dword [ebp - 0x28]
inc edi
mov dword [ebp - 0x28], edi
cmp edi, 0xcad
jl 0x10022463
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x5f94
jl 0x1002245e
mov eax, dword [ebp - 0x88]
cmp dword [eax + 4], ebx
je 0x100224dc
mov edi, esi
cmp dword [eax], ebx
jne 0x100224de
mov edi, ebx
mov ecx, dword [ebp - 0x54]
xor edx, edx
add ecx, dword [eax + 4]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
mov eax, dword [ebp - 0x88]
setg dl
xor ecx, ecx
imul edx, dword [eax]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x38], edx
mov edx, dword [eax]
lea eax, [edi - 1]
imul eax, edx
cmp dword [ebp - 0x38], eax
setge cl
xor eax, eax
cmp ecx, edx
setne al
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x34], 0x6543
jge 0x1002252b
push 0x10008ee0
call fcn.1004d346
pop ecx
or edi, 0xffffffff
lea ecx, [ebp - 0x88]
mov dword [ebp - 4], edi
call fcn.10012046
mov eax, dword [0x1060d5f0]
test al, 2
jne 0x100225d3
or eax, 2
mov dword [0x1060d5f0], eax
push ebx
mov dword [ebp - 4], 0x15
push ebx
mov dword [0x1060d5b0], ebx
mov dword [0x1060d5b4], ebx
call fcn.10014720
mov dword [0x1060d5b0], eax
mov dword [0x1060d5b8], ebx
mov dword [0x1060d5c0], ebx
mov byte [ebp - 4], 0x17
mov ecx, 0x1060d5b8
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x8c]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x158]
mov dword [0x1060d5cc], 0x3f800000
push eax
mov dword [0x1060d5bc], ebx
call fcn.100144c4
push 0x10063ab6
mov dword [0x1060d5c4], 7
mov dword [0x1060d5c8], 8
call fcn.1004d31c
pop ecx
mov dword [ebp - 4], edi
lea eax, [ebp - 0x48]
xorps xmm0, xmm0
push eax
movdqu xmmword [ebp - 0xa8], xmm0
call fcn.1002329c
cmp byte [ebp + 0xc], 0
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x44], eax
jne 0x100225fd
test eax, eax
jne 0x100227f4
mov dword [ebp - 0x28], edi
lea ecx, [ebp - 0xf4]
push esi
call fcn.10011fea
mov dword [ebp - 4], 0x18
lea ecx, [ebp - 0x10c]
mov dword [ebp - 0x24], 0x2d1a4e66
push 3
call fcn.10011fea
xor edx, edx
mov dword [ebp - 0x38], 0x3493876a
mov dword [ebp - 0x1c], ebx
inc edx
jmp 0x10022649
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xf4]
mov dword [eax + ecx*4], 0x3026d8d
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edx
jl 0x10022636
mov dword [ebp - 0x1c], ebx
jmp 0x10022662
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10022653
mov eax, dword [ebp - 0xf4]
lea ecx, [ebp - 0x10c]
mov dword [eax], 0xfbb6bc3e
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x28]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10c]
mov dword [eax + 4], edx
mov dword [ebp - 0x38], edx
call fcn.10012046
lea ecx, [ebp - 0xf4]
mov dword [ebp - 4], edi
call fcn.10012046
mov dword [ebp - 0x28], 0x96f
cmp dword [ebp - 0x28], 0x9ba
jle 0x10022735
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x24], 0x58e1
mov esi, dword [ebp - 0x14]
mov edi, ebx
mov ecx, edi
mov eax, esi
sar eax, cl
lea ecx, [ebp - 0x23c]
cdq
push edx
push eax
call fcn.1000d7ce
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100226f9
mov eax, dword [eax]
push eax
call fcn.1004d346
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x23c]
call fcn.100125d2
inc edi
cmp edi, 0x68fc
jl 0x100226db
mov esi, dword [ebp - 0x30]
add dword [ebp - 0x14], esi
dec dword [ebp - 0x24]
jne 0x100226d6
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0xd44
jl 0x100226cc
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dl, byte [ebp + 0xc]
lea eax, [ebp - 0x264]
mov ecx, dword [ebp - 0x48]
push eax
call fcn.10016e74
cmp dword [ebp - 0x28], 0x5e0
lea edi, [ebp - 0xa8]
mov esi, eax
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jge 0x10022768
push 0x10008f10
call fcn.1004d346
pop ecx
or dword [ebp - 4], 0xffffffff
xor esi, esi
inc esi
cmp byte [ebp + 0xc], 0
je 0x100227f4
cmp dword [ebp - 0xa0], 0
je 0x100227f4
push esi
lea ecx, [ebp - 0x138]
call fcn.10011fea
mov dword [ebp - 0x24], 0xfffffff8
mov dword [ebp - 0x14], ebx
jmp 0x100227a9
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x138]
mov dword [eax + ecx*4], 0x57e8b72f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10022796
mov dword [ebp - 0x24], 7
mov eax, dword [ebp - 0x24]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x100227d7
push 0xd14
push ebx
push 0x635
push 0x223c
call dword [sym.imp.USER32.dll_MapWindowPoints]
lea ecx, [ebp - 0x138]
call fcn.10012046
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x70], eax
push 3
pop edi
mov dword [ebp - 0x20], 4
lea ecx, [ebp - 0x98]
push edi
call fcn.10011fea
mov dword [ebp - 0x34], 0xbc19
mov dword [ebp - 0x1c], ebx
jmp 0x10022823
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x12c], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x10022816
mov dword [ebp - 0x1c], ebx
jmp 0x1002283d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x98]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x1002282e
cmp dword [ebp - 0x20], ebx
je 0x10022981
mov dword [ebp - 0x50], 0xffffffff
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x38], 0xc5b641b4
mov dword [ebp - 0x4c], 0x46e74a6
mov dword [ebp - 0x3c], 0x72ddb74a
mov dword [ebp - 0x28], 0xfffffffb
mov dword [ebp - 0x20], ebx
jmp 0x10022976
mov dword [ebp - 0x7c], 0xfbefa5f9
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x24], 0xfc36fe5a
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x14], ebx
jmp 0x100228a7
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x178], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10022896
dec dword [ebp - 0x24]
mov eax, dword [ebp - 0x98]
cmp dword [eax], 0xa1bca339
jae 0x100228c4
cmp dword [eax], 0
mov ecx, ebx
je 0x100228c6
mov ecx, esi
xor eax, eax
test ecx, ecx
sete al
xor ecx, ecx
cmp eax, 0xc2a4
mov eax, dword [ebp - 0x30]
setl cl
xor edx, edx
cmp eax, ecx
setge dl
sub edx, 0x1cf717c9
sub edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x174]
neg edx
mov eax, dword [ebp - 0x1c]
sbb edx, edx
inc edx
mov dword [ebp - 0x24], edx
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x7c]
setne dl
xor ecx, ecx
cmp edx, dword [ebp - 0x24]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x98]
setg dl
mov dword [eax], edx
test edx, edx
je 0x10022926
mov eax, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x12c]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x3c], ebx
jne 0x10022941
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x174], esi
mov dword [ebp - 0x30], 2
cmp dword [ebp - 0x30], ebx
jl 0x10022973
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x1002296e
push ebx
push ebx
push 0x727
push ebx
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
dec dword [ebp - 0x30]
jns 0x10022956
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jle 0x10022879
jmp 0x100229f4
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x30], 0xfd33f116
mov dword [ebp - 0x3c], 0x92afb55e
mov dword [eax], ebx
mov dword [ebp - 0x20], 0x1d
jmp 0x100229ee
mov dword [ebp - 0x14], 0xfffffffd
mov dword [ebp - 0x3c], 0xffffffff
cmp dword [ebp - 0x20], ebx
je 0x100229b6
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x128]
cmp eax, esi
mov eax, dword [ebp - 0x12c]
setge dl
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [ebp - 0x3c], ecx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1e
jle 0x100229a0
lea ecx, [ebp - 0x98]
call fcn.10012046
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jne 0x10022d54
cmp dword [ebp - 0xa8], ecx
jle 0x10022d54
mov dword [ebp - 0x20], 0x891c
mov dword [ebp - 0x34], 8
mov dword [ebp - 0x30], 0x966ef3b0
mov dword [ebp - 0x50], 0xbb9a
mov dword [ebp - 0x3c], 0x6b4c01f9
cmp dword [ebp - 0x20], ebx
jne 0x10022a41
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
sete dl
cmp edx, dword [ebp - 0x20]
jl 0x10022b12
mov dword [ebp - 0x14], 0xe1c5a3d7
lea ecx, [ebp - 0xc4]
push esi
call fcn.10011fea
mov dword [ebp - 0x24], 0xa4c82104
mov dword [ebp - 0x1c], ebx
jmp 0x10022a8f
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc4]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10022a7c
mov dword [ebp - 0x1c], ebx
jmp 0x10022aa6
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1dc], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x10022a99
cmp dword [ebp - 0x20], ebx
jne 0x10022af5
xor ecx, ecx
mov dword [ebp - 0x34], 0x4039
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
cmp eax, 0x7120dd93
setg cl
sub ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x34]
neg ecx
sbb ecx, ecx
inc ecx
sub edx, ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc4]
neg edx
sbb edx, edx
inc edx
sub ecx, dword [eax]
sub ecx, edx
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x30]
mov ecx, ebx
jne 0x10022af7
mov ecx, esi
mov eax, dword [ebp - 0xc4]
mov dword [eax], ecx
mov dword [ebp - 0x1d4], ecx
lea ecx, [ebp - 0xc4]
call fcn.10012046
jmp 0x10022b26
mov dword [ebp - 0x3c], 0x674fa72d
mov dword [ebp - 0x4c], 0xfad7494d
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x20], eax
jg 0x10022b37
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x30]
neg eax
push 4
sbb eax, eax
inc eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x164]
call fcn.10011fea
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], ebx
jmp 0x10022b88
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x164]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10022b79
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10022ba3
push ebx
push 0x21a4
call dword [sym.imp.USER32.dll_ValidateRgn]
mov dword [ebp - 0x14], ebx
jmp 0x10022bd2
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10022bcf
push ebx
push 0x24e2
push 0x1dcd
push 0x20ac
push 0x4ec
push 0x5a
push ebx
call dword [sym.imp.USER32.dll_TrackPopupMenu]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x10022ba8
lea ecx, [ebp - 0x164]
call fcn.10012046
mov dword [ebp - 0x3c], 0xfffffff9
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10022bf9
push ebx
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10022c0d
push 0x247d
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x30], 0x4afd
cmp dword [ebp - 0x30], 0x4b64
jle 0x10022c75
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov eax, ebx
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
add eax, edi
mov ecx, 0x1060c478
xor eax, ebx
cdq
push edx
push eax
call fcn.10011c95
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x6723
jl 0x10022c2d
inc edi
push 0
pop ebx
cmp edi, 0x3f55
jl 0x10022c25
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x289b
jl 0x10022c23
push esi
push 0x42a
call dword [sym.imp.USER32.dll_ShowOwnedPopups]
push 3
pop edi
mov dword [ebp - 0x3c], 0x7937d8e6
mov dword [ebp - 4], 0x1b
cmp dword [ebp - 0x30], 0x48af
jge 0x10022c9b
mov edx, 0x10008f30
mov ecx, 0x1060c478
call fcn.100147fa
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x44], 0xc588e1b6
mov dword [ebp - 0x14], ebx
jmp 0x10022d01
mov dword [ebp - 0x11c], ebx
mov dword [ebp - 0x118], ebx
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x110], ebx
mov dword [ebp - 0x3c], 2
mov eax, dword [ebp - 0x118]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jge 0x10022cd9
mov ecx, dword [ebp - 0xa4]
test ecx, ecx
je 0x10022d54
call fcn.10021916
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], ebx
jmp 0x10022d40
mov dword [ebp - 0x24], 0x9351f200
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10022d37
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffe7
jle 0x10022d20
lea eax, [ebp - 0x48]
push eax
call fcn.1002329c
mov ecx, dword [ebp - 0x2c]
mov dword [eax], ecx
lea ecx, [ebp - 0xa8]
call fcn.1001d311
mov dword [ebp - 0x30], 0xb546158d
mov dword [ebp - 0x1c], 0xfff9
mov dword [ebp - 0x34], 8
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x20], 0x3c3d2146
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x14], ebx
jmp 0x10022da5
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x150], 0x1dec7435
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10022d94
cmp dword [ebp - 0x30], ebx
jne 0x10022e2b
dec dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
sub eax, 5
mov dword [ebp - 0x30], eax
je 0x10022df4
mov ecx, dword [ebp - 0x34]
xor edx, edx
mov eax, dword [ebp - 0x30]
cmp eax, ecx
setl dl
xor eax, eax
cmp edx, 0x20b2
setle al
sub eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x30]
neg eax
sbb eax, eax
inc eax
imul eax, eax, 0x33a4
sub ecx, eax
mov eax, esi
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x30], ecx
jne 0x10022df6
mov eax, ebx
mov dword [ebp - 0x24], eax
xor ecx, ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
cmp edx, eax
setl cl
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x34]
mov eax, ebx
cmp dword [ebp - 0x30], ebx
je 0x10022e2d
mov eax, esi
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], ebx
je 0x10022e5e
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10023005
push 0x119
push 0xe88
push ebx
push 0x873
push ebx
call dword [sym.imp.USER32.dll_GetMenuStringW]
jmp 0x10023005
mov dword [ebp - 0x20], 0x89ed5b60
mov dword [ebp - 0x38], 0x3460ee42
mov dword [ebp - 0x38], 0xae11e546
mov dword [ebp - 0x14], ebx
jmp 0x10022e89
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xdc], 0xcb566e66
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10022e78
mov dword [ebp - 0x1c], ebx
jmp 0x10022fa3
mov dword [ebp - 0x14], 0xfffd
xor ecx, ecx
mov dword [ebp - 0x24], 0x8bfa0855
mov dword [ebp - 0x24], 0x5faf1bec
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
cmp eax, 0xef6f
mov eax, dword [ebp - 0x30]
setge cl
xor edx, edx
cmp eax, ecx
setl dl
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x28], 2
cmp dword [ebp - 0x28], ebx
jl 0x10022fa0
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x38], 0x9d06
mov dword [ebp - 0x20], ebx
jmp 0x10022f1d
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0xdc]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0xdc]
mov dword [ebp - 0x38], eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jle 0x10022f00
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x20], 0x136b
cmp dword [ebp - 0x20], ebx
je 0x10022f38
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
xor edx, edx
mov dword [ebp - 0x24], ebx
mov ecx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x1c]
inc eax
add ecx, eax
mov eax, dword [ebp - 0x24]
cmp eax, ecx
setg dl
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x28]
setle dl
mov eax, dword [ebp + eax*4 - 0xdc]
sub eax, edx
imul eax, dword [ebp - 0xd4]
neg eax
add eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
dec dword [ebp - 0x28]
jns 0x10022eed
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xd
jl 0x10022e96
mov dword [ebp - 0x20], 0xc
jmp 0x10022fff
mov dword [ebp - 0x24], 0x17358d0d
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
neg ecx
sbb ecx, ecx
neg ecx
sub eax, ecx
xor ecx, ecx
cmp eax, 0xffff
setne cl
mov dword [ebp - 0x38], ecx
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10022ffc
push 0x18ea
push 0xdad
push 0xded
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xffffffe4
jge 0x10022fb6
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x10023029
mov edx, dword [ebp - 0x40]
mov ecx, eax
call fcn.100219d2
mov esi, eax
lea eax, [ebp - 0x60]
push eax
mov dword [ebp - 0x78], esi
call fcn.1002323a
mov dword [eax], esi
xor esi, esi
inc esi
mov dword [ebp - 0x28], 5
mov dword [ebp - 0x38], 0x64bae0fc
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x2c], ebx
jmp 0x10023050
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x1a4], 9
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 4
jl 0x1002303f
mov dword [ebp - 0x28], 0x10
jmp 0x10023125
mov dword [ebp - 0x14], 0x5c6f
mov dword [ebp - 0x40], 0x41b44adc
mov dword [ebp - 0x2c], ebx
jmp 0x10023082
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x16c], esi
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jl 0x10023075
mov eax, dword [ebp - 0x14]
xor edx, edx
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
cmp eax, ecx
mov eax, dword [ebp - 0x28]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x28]
neg eax
sub eax, dword [ebp - 0x40]
neg eax
sbb eax, eax
inc eax
cmp eax, 0xfffffff9
jg 0x100230be
mov edx, ebx
cmp dword [ebp - 0x38], ebx
je 0x100230c0
mov edx, esi
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1a4]
setle dl
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x19c]
cmp edx, eax
setne cl
cmp ecx, 0xa71a6e48
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x1b7e
setle al
xor edx, edx
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
cmp eax, ecx
mov eax, 0x8af16de6
setl dl
imul edx, dword [ebp - 0x14]
cmp eax, edx
sbb eax, eax
neg eax
mov dword [ebp - 0x168], eax
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xffffffec
jne 0x10023062
mov eax, dword [ebp + 8]
lea esi, [ebp - 0x78]
mov ecx, dword [ebp - 0xc]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret