Function at 0x100205fc
Capabilities:
Check os version
Get system information on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1006aef1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2d8
push ebx
push esi
push edi
mov esi, edx
mov dword [esp + 0x58], ecx
push 3
lea ecx, [esp + 0x1b0]
mov dword [esp + 0x58], esi
call fcn.1000b98b
xor ebx, ebx
mov dword [esp + 0x2ec], ebx
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x28], 0x2f3ccd24
mov dword [esp + 0x30], 0x3f5e3d1a
mov dword [esp + 0x38], ebx
jmp 0x10020675
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x1ac]
mov dword [eax + ecx*4], 0x8261f9c2
inc dword [esp + 0x38]
cmp dword [esp + 0x38], 3
jl 0x1002065f
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x1002069e
push 0x23e9
push ebx
push 0xa4d
push ebx
push 0xa69
push ebx
call dword [sym.imp.KERNEL32.dll_CompareStringW]
mov dword [esp + 0x18], 2
cmp dword [esp + 0x18], ebx
jl 0x1002079c
mov dword [esp + 0x10], ebx
lea ecx, [esp + 0x1dc]
push 4
call fcn.1000b98b
mov dword [esp + 0x38], ebx
jmp 0x100206de
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x1dc]
mov dword [eax + ecx*4], 0xd5493e6
inc dword [esp + 0x38]
cmp dword [esp + 0x38], 4
jl 0x100206c8
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1002070a
push 0x1232
push 0xaae
push 0xc6
push 0x623
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov dword [esp + 0x10], 2
cmp dword [esp + 0x10], ebx
jl 0x10020782
mov ebx, dword [esp + 0x1dc]
mov dword [esp + 0x24], 0x30c4e2bf
xor ecx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
cmp eax, 0xfd43
setg cl
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1ac]
mov edi, dword [ebx + 8]
sub edi, dword [ecx + eax*4]
mov eax, dword [esp + 0x10]
mov edx, dword [ecx + edx*4]
sub edx, dword [ecx + esi*4]
xor ecx, ecx
imul eax, edi
cmp edx, eax
setne cl
mov dword [esp + 0x24], ecx
dec dword [esp + 0x10]
jns 0x1002071f
xor ebx, ebx
lea ecx, [esp + 0x1dc]
call fcn.1000ba0d
dec dword [esp + 0x18]
jns 0x100206b0
mov esi, dword [esp + 0x54]
or dword [esp + 0x2ec], 0xffffffff
lea ecx, [esp + 0x1ac]
call fcn.1000ba0d
mov eax, dword [0x11a1eae0]
xor edi, edi
inc edi
test al, 1
jne 0x10020855
or eax, edi
mov dword [0x11a1eae0], eax
push ebx
mov dword [esp + 0x2f0], edi
push ebx
mov dword [0x11a1eaf0], ebx
mov dword [0x11a1eaf4], ebx
call fcn.1001580d
mov dword [0x11a1eaf0], eax
mov dword [0x11a1eaf8], ebx
mov dword [0x11a1eb00], ebx
mov byte [esp + 0x2ec], 3
mov ecx, 0x11a1eaf8
mov dword [esp + 0x12c], eax
lea eax, [esp + 0x12c]
push eax
push 0x10
push ebx
lea eax, [esp + 0x200]
mov dword [0x11a1eb0c], 0x3f800000
push eax
mov dword [0x11a1eafc], ebx
call fcn.100155b1
push 0x1006ba66
mov dword [0x11a1eb04], 7
mov dword [0x11a1eb08], 8
call fcn.1005181c
or dword [esp + 0x2f0], 0xffffffff
pop ecx
mov dword [esp + 0x10], 0xfff7
mov dword [esp + 0x18], 0x1d1b984
cmp dword [esp + 0x10], ebx
mov byte [esp + 0x17], bl
je 0x10020886
cmp byte [esp + 0x17], 0
je 0x10020894
push ebx
push ebx
push 0x20e9
push ebx
call dword [sym.imp.USER32.dll_AppendMenuA]
jmp 0x10020894
cmp byte [esp + 0x17], 0
je 0x10020894
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [esp + 0x10], ebx
jne 0x100208bc
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x10]
jl 0x100208bc
mov ecx, ebx
cmp dword [esp + 0x18], ebx
je 0x100208be
mov ecx, edi
mov eax, dword [esp + 0x18]
imul eax, ecx
mov dword [esp + 0x18], eax
imul eax, dword [esp + 0x58], 0x2710
add eax, esi
mov dword [esp + 0x84], eax
lea eax, [esp + 0x84]
push eax
call fcn.10023059
mov esi, dword [eax]
test esi, esi
je 0x10020b10
mov dword [esp + 0x10], 9
mov dword [esp + 0x54], 0xcecb4571
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], eax
mov dword [esp + 0x10], ebx
jmp 0x10020946
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10020930
push ebx
push 0x180a
push 0x20e4
push 0x1ce1
call dword [sym.imp.GDI32.dll_SetViewportOrgEx]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10020942
push ebx
call dword [sym.imp.KERNEL32.dll_SetCommBreak]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x17
jg 0x1002090f
mov dword [esp + 0x1c], 0xce125d16
mov dword [esp + 0x10], 0x2aa61fc2
mov dword [esp + 0x2c], 8
mov dword [esp + 0x10], 0x9d75
mov eax, dword [esp + 0x10]
mov dword [esp + 0xd8], esi
cmp eax, dword [esp + 0x1c]
jg 0x10020988
cmp dword [esp + 0x10], ebx
jne 0x10020988
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], 0xf5fa
cmp dword [esp + 0x2c], ebx
jne 0x1002099e
mov eax, ebx
cmp dword [esp + 0x1c], ebx
je 0x100209a0
mov eax, edi
xor edx, edx
cmp eax, 0x68aa
mov eax, dword [esp + 0x1c]
setge dl
xor ecx, ecx
cmp edx, eax
mov edx, dword [esp + 0x1c]
setle cl
xor eax, eax
cmp eax, ecx
sbb eax, eax
neg eax
sub edx, eax
mov eax, dword [esp + 0x1c]
neg edx
sbb edx, edx
sub eax, dword [esp + 0x1c]
inc edx
xor ecx, ecx
cmp eax, edx
setle cl
cmp dword [esp + 0x1c], ecx
jge 0x100209f8
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10020aea
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
jmp 0x10020aea
push edi
lea ecx, [esp + 0x1bc]
call fcn.1000b98b
mov dword [esp + 0x38], ebx
jmp 0x10020a21
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x1b8]
mov dword [eax + ecx*4], 0xe92e3f91
inc dword [esp + 0x38]
cmp dword [esp + 0x38], edi
jl 0x10020a0b
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10020a3e
push ebx
push 0x2456
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
mov dword [esp + 0x1c], ebx
jmp 0x10020ad4
mov dword [esp + 0x18], 0xffff
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ebx
jmp 0x10020aca
mov dword [esp + 0x28], 0x41b6
cmp dword [esp + 0x18], ebx
jne 0x10020ad0
mov dword [esp + 0x18], ebx
jmp 0x10020ac0
je 0x10020a8f
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x10]
cmp eax, 0xb1b9b96
mov eax, dword [esp + 0x1b8]
setge cl
xor edx, edx
cmp ecx, 0xa3e2
setle dl
mov dword [eax + esi*4], edx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jle 0x10020a71
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jle 0x10020a5d
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], ebx
jle 0x10020a47
lea ecx, [esp + 0x1b8]
call fcn.1000ba0d
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10022a0c
push 0x2b7
push ebx
push 0x6ef
push ebx
call dword [sym.imp.USER32.dll_LoadStringA]
jmp 0x10022a0c
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], ebx
jmp 0x10020b32
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x68], 0x3198a8f9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10020b22
mov dword [esp + 0x10], ebx
jmp 0x10020b52
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x2a8], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10020b3f
mov dword [esp + 0x18], ebx
jmp 0x10020bd3
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], 0xd99ea7eb
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x68], ebx
jne 0x10020b7d
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x68]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + eax*4 + 0x68]
imul eax, dword [esp + 0x18], 9
add ecx, eax
imul ecx, ecx, 0xaced
sub ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x68], ecx
jle 0x10020ba8
mov esi, ebx
cmp dword [esp + 0x68], ebx
jne 0x10020baa
mov esi, edi
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov edx, dword [esp + eax*4 + 0x68]
mov eax, dword [esp + 0x24]
cmp esi, eax
mov eax, dword [esp + 0x40]
setl cl
imul edx, ecx
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [esp + 0x48], ecx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jle 0x10020b5f
mov eax, dword [0x11a1eae0]
test al, 2
jne 0x10020c80
or eax, 2
mov dword [0x11a1eae0], eax
push ebx
mov dword [esp + 0x2f0], 4
push ebx
mov dword [0x11a1eac0], ebx
mov dword [0x11a1eac4], ebx
call fcn.1001580d
mov dword [0x11a1eac0], eax
mov dword [0x11a1eac8], ebx
mov dword [0x11a1ead0], ebx
mov byte [esp + 0x2ec], 6
mov ecx, 0x11a1eac8
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xb8]
push eax
push 0x10
push ebx
lea eax, [esp + 0xb0]
mov dword [0x11a1eadc], 0x3f800000
push eax
mov dword [0x11a1eacc], ebx
call fcn.100155b1
push 0x1006ba61
mov dword [0x11a1ead4], 7
mov dword [0x11a1ead8], 8
call fcn.1005181c
or dword [esp + 0x2f0], 0xffffffff
pop ecx
mov dword [esp + 0x10], 0x693e
lea ecx, [esp + 0x144]
mov dword [esp + 0x2c], 0x3205f5a2
mov dword [esp + 0x3c], 0x413e458c
mov dword [esp + 0x18], 0xfffffffc
mov dword [esp + 0x24], 0xb275cf8
push 4
call fcn.1000b98b
mov dword [esp + 0x20], 2
mov dword [esp + 0x44], 0x6e19
mov dword [esp + 0x28], 0xfffffff9
mov dword [esp + 0x1c], 0x7d86c3ce
mov dword [esp + 0x38], ebx
jmp 0x10020cee
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x144]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x38]
cmp dword [esp + 0x38], 4
jl 0x10020cdc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jne 0x10020d98
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x144]
xor eax, eax
cmp dword [edx + 8], 5
sete al
cmp edi, eax
sbb eax, eax
neg eax
sub eax, 0x25769539
je 0x10020d33
cmp dword [esp + 0x10], ebx
mov ecx, edi
mov edx, dword [esp + 0x144]
jne 0x10020d35
mov ecx, ebx
xor eax, eax
cmp ecx, dword [edx + 4]
setge al
lea ecx, [eax - 1]
mov eax, dword [esp + 0x20]
mov dword [edx + 0xc], ecx
neg ecx
dec dword [esp + 0x20]
cmp eax, ecx
mov edx, dword [esp + 0x2c]
mov eax, edi
cmove eax, ebx
xor ecx, ecx
add edx, eax
mov eax, dword [esp + 0x10]
cmp edx, eax
setge cl
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x2c]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x144]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], 0xa480d8aa
call fcn.1000ba0d
lea eax, [esp + 0x58]
xorps xmm0, xmm0
push eax
movdqu xmmword [esp + 0xac], xmm0
call fcn.100230bb
mov esi, dword [eax]
mov dword [esp + 0x24], 0x1d1a
cmp dword [esp + 0x24], 0x99a
mov dword [esp + 0x38], esi
jge 0x10020ead
lea eax, [esp + 0x9c]
mov ecx, 0x1065b470
push eax
call fcn.1000b67e
mov esi, dword [esp + 0x9c]
test esi, esi
je 0x10020ea5
lea eax, [esp + 0x130]
dec esi
push eax
push ecx
lea eax, [esp + 0x130]
mov ecx, 0x1065b470
push eax
call fcn.1000b67e
pop ecx
mov ecx, eax
call fcn.1000b67e
mov edi, dword [esp + 0x128]
mov eax, dword [esp + 0x130]
cmp edi, eax
je 0x10020e77
inc eax
cdq
sub eax, edx
mov ecx, eax
lea eax, [edi + 1]
cdq
sub eax, edx
sar ecx, 1
sar eax, 1
imul ecx, eax
push ecx
jmp 0x10020e8d
lea eax, [edi + 1]
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
lea eax, [ecx + 1]
imul eax, ecx
cdq
sub eax, edx
sar eax, 1
push eax
mov ecx, 0x1065b3b8
call fcn.1000b879
push eax
call fcn.1000f2a9
pop ecx
test esi, esi
jne 0x10020e2b
xor edi, edi
inc edi
dec esi
mov dword [esp + 0x9c], esi
push edi
lea ecx, [esp + 0x1d4]
call fcn.1000b98b
mov dword [esp + 0x20], 0x813a3dbc
mov dword [esp + 0x2c], 0x7005
mov dword [esp + 0x28], 0xa4bc
mov dword [esp + 0x3c], 6
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x40], 0xdda30181
mov dword [esp + 0x1c], ebx
jmp 0x10020f06
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x1d0]
mov dword [eax + ecx*4], 5
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x10020ef0
push 2
mov dword [esp + 0x20], ebx
pop ecx
jmp 0x10020f28
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x110], 0xd62e652
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], ecx
jl 0x10020f15
mov dword [esp + 0x1c], ebx
jmp 0x10020f47
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x178], 0xfffffffa
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], ecx
jl 0x10020f34
mov dword [esp + 0x1c], ebx
jmp 0x10020f66
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x80], 0x2c90
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x10020f53
mov eax, dword [esp + 0x1d0]
cmp dword [eax], ebx
je 0x10020fec
cmp dword [esp + 0x28], ebx
je 0x10020f85
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x110]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x110]
mov dword [esp + 0x110], eax
dec dword [esp + 0x2c]
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x178]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x178]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x80]
sub edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0x80]
setge cl
add eax, ecx
cmp eax, dword [esp + 0x24]
mov eax, edi
jne 0x10020fee
mov eax, ebx
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x1d0]
call fcn.1000ba0d
mov dword [esp + 0x24], 0x17a1
cmp dword [esp + 0x24], 0x971
jge 0x10021151
call fcn.10051e77
push eax
push 0x10007b10
push 0x10007b14
call fcn.100523b7
add esp, 0xc
call fcn.10051e77
add eax, 0x20
push eax
push 0x10007b1c
push 0x10007b20
call fcn.100523b7
add esp, 0xc
lea eax, [esp + 0x5c]
push eax
push ecx
lea eax, [esp + 0x94]
push eax
push ecx
lea eax, [esp + 0x70]
mov ecx, 0x1065b470
push eax
call fcn.1000b67e
pop ecx
mov ecx, eax
call fcn.1000b67e
pop ecx
mov ecx, eax
call fcn.1000b67e
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x10021151
mov esi, dword [esp + 0x8c]
mov eax, dword [esp + 0x5c]
lea ecx, [esi + esi]
sub eax, ecx
add eax, dword [esp + 0x60]
cdq
sub eax, edx
mov edi, eax
mov eax, esi
mov esi, dword [esp + 0x60]
shl eax, 2
imul ecx, esi, 3
sar edi, 1
sub eax, ecx
imul ecx, edi, 5
sub eax, dword [esp + 0x5c]
cdq
sub eax, edx
mov edx, eax
sar edx, 1
add ecx, edx
imul ecx, ecx, 5
add ecx, esi
push ecx
push ecx
lea ecx, [edx + edi*4]
lea eax, [esi + ecx*4]
push eax
imul eax, edi, 3
push ecx
mov ecx, 0x1065b3b8
add eax, edx
imul eax, eax, 3
add eax, esi
push eax
call fcn.1000b879
mov esi, 0x10007ae4
mov ecx, eax
mov edx, esi
call fcn.1000f0d2
pop ecx
mov ecx, eax
call fcn.1000b879
mov edx, esi
mov ecx, eax
call fcn.1000f0d2
pop ecx
mov ecx, eax
call fcn.1000b879
push eax
call fcn.1000f2a9
pop ecx
lea eax, [esp + 0x5c]
push eax
push ecx
lea eax, [esp + 0x94]
push eax
push ecx
lea eax, [esp + 0x70]
mov ecx, 0x1065b470
push eax
call fcn.1000b67e
pop ecx
mov ecx, eax
call fcn.1000b67e
pop ecx
mov ecx, eax
call fcn.1000b67e
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
je 0x10021085
xor edi, edi
inc edi
cmp byte [ebp + 0xc], 0
jne 0x10021163
mov esi, dword [esp + 0x38]
test esi, esi
jne 0x10021796
mov dword [esp + 0x44], 0xb8c3
lea ecx, [esp + 0x1a0]
mov dword [esp + 0x20], 0x152c58fb
mov dword [esp + 0x34], 0x7c8748af
mov dword [esp + 0x30], 3
mov dword [esp + 0x3c], 0xe6d058a8
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x40], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], edi
push edi
call fcn.1000b98b
mov dword [esp + 0x2ec], 7
mov dword [esp + 0x48], 4
mov dword [esp + 0x1c], 0x2e40c18a
mov dword [esp + 0x10], 0xfffc
mov dword [esp + 0x2c], 0xf1a0197c
mov dword [esp + 0x4c], 0xb566e66b
mov dword [esp + 0x10], ebx
jmp 0x100211fb
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1a0]
mov dword [eax + ecx*4], 0xca9f8d1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x100211e5
cmp dword [esp + 0x28], ebx
je 0x1002122b
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x40], ebx
jne 0x10021227
cmp dword [esp + 0x44], ebx
je 0x1002122b
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x20], eax
jge 0x1002125d
mov ecx, ebx
cmp dword [esp + 0x48], ebx
je 0x1002125f
mov ecx, edi
mov eax, dword [esp + 0x20]
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x40]
setge dl
xor ecx, ecx
cmp edx, eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
setge cl
sub edx, ecx
inc dword [esp + 0x1c]
cmp edx, eax
mov eax, edi
cmove eax, ebx
xor ecx, ecx
cmp eax, 0x3dce
mov eax, dword [esp + 0x1a0]
setge cl
mov dword [eax], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x10], ebx
jmp 0x10021352
mov dword [esp + 0x20], 0xdcdedc29
lea ecx, [esp + 0x1e8]
push edi
call fcn.1000b98b
mov dword [esp + 0x40], edi
mov dword [esp + 0x18], ebx
jmp 0x100212db
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1e8]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x100212c9
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1e8]
mov dword [eax], ecx
test ecx, ecx
je 0x100212f6
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
setge dl
sub edx, dword [esp + 0x24]
neg edx
sbb edx, edx
inc edx
cmp edx, 3
jb 0x10021334
mov ecx, ebx
cmp dword [esp + 0x2c], ebx
je 0x10021336
mov ecx, edi
xor eax, eax
cmp ecx, 0xfffffff7
lea ecx, [esp + 0x1e8]
sete al
mov dword [esp + 0x40], eax
call fcn.1000ba0d
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x32
je 0x100212aa
or dword [esp + 0x2ec], 0xffffffff
lea ecx, [esp + 0x1a0]
call fcn.1000ba0d
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x2c0]
mov ecx, dword [esp + 0x58]
push eax
call fcn.100160a6
mov esi, eax
lea edi, [esp + 0xac]
mov eax, 0x177e8edf
pop ecx
push 2
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x154], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x20], 0x1ced
mov dword [esp + 0x14], 0xfffffff8
mov dword [esp + 0x34], 0x3d57638f
mov dword [esp + 0x34], ebx
mov dword [esp + 0x34], 0xbc8b6976
mov dword [esp + 0x34], 0x83d4f39a
pop edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebx
jmp 0x10021400
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x29c], 0xd3384f7a
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x100213ed
cmp dword [esp + 0x158], ebx
je 0x10021447
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1002142d
push ebx
push 0xb5
push ebx
push 0x1c14
call dword [sym.imp.KERNEL32.dll_GetStringTypeW]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x100215ef
call dword [sym.imp.KERNEL32.dll_SwitchToThread]
jmp 0x100215ef
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], 0x169ff9e6
mov dword [esp + 0x30], 0x1562
mov dword [esp + 0x40], 0xd69c043c
mov dword [esp + 0x18], ebx
jmp 0x1002147c
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x190], 0xa31e468a
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x10021469
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x1c], ebx
jne 0x1002149e
cmp dword [esp + 0x10], ebx
jne 0x1002149e
xor esi, esi
mov edx, ebx
inc esi
jmp 0x100214a3
xor esi, esi
inc esi
mov edx, esi
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x150]
setg cl
add eax, ecx
cmp dword [esp + 0x158], eax
jl 0x100214d2
mov dword [esp + 0x194], esi
cmp dword [esp + 0x194], ebx
jne 0x100214dd
jmp 0x100214d9
mov dword [esp + 0x194], ebx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], 0x231fbf68
cmp dword [esp + 0x2c], ebx
je 0x1002152d
mov dword [esp + 0x24], 0x5300
mov dword [esp + 0x10], 0x10
jmp 0x1002150d
mov dword [esp + 0x34], esi
mov dword [esp + 0x34], 8
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffffb
je 0x100214fd
cmp dword [esp + 0x10], ebx
je 0x10021522
mov eax, esi
cmp dword [esp + 0x24], ebx
jne 0x10021524
mov eax, ebx
mov dword [esp + 0x2c], eax
jmp 0x100215eb
mov dword [esp + 0x24], 0x9a67
lea ecx, [esp + 0x11c]
push edi
call fcn.1000b98b
mov dword [esp + 0x10], ebx
jmp 0x1002155e
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x11c]
mov dword [eax + ecx*4], 0x23205e60
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10021548
mov ecx, dword [esp + 0x194]
xor edx, edx
mov eax, dword [esp + 0x11c]
cmp ecx, dword [eax]
mov eax, dword [esp + 0x1c]
setle dl
sub edx, 0x19c36c1d
imul eax, edx
test eax, eax
je 0x10021598
mov eax, dword [esp + 0x11c]
mov edx, esi
cmp dword [eax + 4], ebx
jne 0x1002159a
mov edx, ebx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x194]
mov ecx, dword [esp + 0x158]
sub ecx, eax
mov eax, dword [esp + 0x24]
add eax, ecx
dec dword [esp + 0x28]
cmp eax, edx
mov eax, dword [esp + 0x2c]
mov edx, esi
cmovg edx, ebx
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x11c]
setl cl
xor edx, edx
test ecx, ecx
lea ecx, [esp + 0x11c]
sets dl
mov dword [eax + 4], edx
call fcn.1000ba0d
inc dword [esp + 0x40]
cmp byte [ebp + 0xc], 0
je 0x10021792
cmp dword [esp + 0xb0], 0
je 0x10021792
mov dword [esp + 0x10], 9
mov dword [esp + 0x18], 0x12d2c87a
mov dword [esp + 0x10], ebx
jmp 0x10021630
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x244], 0x10c9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x1002161d
mov dword [esp + 0x10], ebx
jmp 0x1002176b
push dword [esp + 0xa4]
movdqa xmm0, xmmword [0x10007e70]
lea eax, [esp + 0x268]
push eax
lea eax, [esp + 0x25c]
mov dword [esp + 0x13c], ebx
push eax
push ebx
lea ecx, [esp + 0x144]
mov dword [esp + 0x148], ebx
movdqu xmmword [esp + 0x264], xmm0
mov dword [esp + 0x14c], ebx
call fcn.1000fc06
mov dword [esp + 0x44], 0x49cec79e
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x244], ebx
je 0x100216d2
mov dword [esp + 0x34], 0x3fbb
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x100216be
push ebx
push 0x1697
call dword [sym.imp.USER32.dll_MapDialogRect]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x134]
mov dword [eax + 8], ecx
mov dword [esp + 0x44], ecx
jmp 0x1002172e
xor edx, edx
mov dword [esp + 0x28], 0x8ed40a16
inc edx
mov dword [esp + 0x24], edx
cmp dword [esp + 0x18], ebx
je 0x100216fe
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x244], 0x6c9c
mov eax, edx
cmp dword [esp + 0x28], ebx
jne 0x10021700
mov eax, ebx
mov ecx, 0xefd06bde
cmp ecx, eax
sbb eax, eax
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x44]
jl 0x10021728
mov eax, edx
cmp dword [esp + 0x10], ebx
jne 0x1002172a
mov eax, ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x18], ebx
jmp 0x10021754
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10021750
push ebx
push 0x1a68
push 0x1f6a
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jle 0x10021734
lea ecx, [esp + 0x134]
call fcn.1000ba0d
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jle 0x10021640
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xe0], eax
mov esi, dword [esp + 0x38]
mov dword [esp + 0x18], 0x571177e8
mov dword [esp + 0x34], 0xfffffffb
mov dword [esp + 0x10], ebx
jmp 0x100217bf
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x2d0], 0x45f1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x100217ac
mov dword [esp + 0x18], ebx
jmp 0x1002185b
push dword [esp + 0xa4]
movdqa xmm0, xmmword [0x10007e20]
lea eax, [esp + 0x278]
push eax
lea eax, [esp + 0x26c]
mov dword [esp + 0xf0], ebx
push eax
push ebx
lea ecx, [esp + 0xf8]
mov dword [esp + 0xfc], ebx
movdqu xmmword [esp + 0x274], xmm0
mov dword [esp + 0x100], ebx
call fcn.1000fc06
mov eax, dword [esp + 0xe8]
push 3
pop ecx
mov dword [eax + 8], ecx
mov dword [esp + 0x10], 0x781ced8f
mov dword [esp + 0x10], ebx
jmp 0x10021840
mov dword [esp + 0x34], 5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jle 0x10021834
dec dword [eax + 8]
jns 0x10021826
lea ecx, [esp + 0xe8]
call fcn.1000ba0d
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffe7
jne 0x100217cf
test esi, esi
jne 0x10022465
cmp dword [esp + 0xa8], esi
jle 0x10022465
push 4
xor edi, edi
lea ecx, [esp + 0x1c8]
pop esi
inc edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x44], 5
push edi
call fcn.1000b98b
mov dword [esp + 0x34], edi
mov dword [esp + 0x10], ebx
jmp 0x100218ba
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c4]
mov dword [eax + ecx*4], 0x6dd2cc9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x100218a4
mov dword [esp + 0x18], ebx
jmp 0x10021983
mov dword [esp + 0x24], 0xa290be4
mov dword [esp + 0x28], 0x34111d01
mov dword [esp + 0x10], ebx
jmp 0x100218f2
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x28c], 0xb90f9986
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x100218df
mov dword [esp + 0x10], ebx
jmp 0x10021911
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x274], 0xfffffff6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x100218fe
cmp dword [esp + 0x24], ebx
je 0x10021976
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], 0xfffffff6
mov edx, dword [esp + 0x44]
sub edx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
neg edx
sbb edx, edx
xor ecx, ecx
add edx, 2
cmp edx, eax
setne cl
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x290], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c4]
sub ecx, dword [eax]
je 0x10021976
mov eax, edi
cmp dword [esp + 0x34], ebx
jne 0x10021978
mov eax, ebx
mov dword [esp + 0x27c], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 8
jg 0x100218c9
mov dword [esp + 0x18], 0xfffffff7
lea ecx, [esp + 0x1c4]
call fcn.1000ba0d
mov dword [esp + 0x18], 0x5425a80e
lea ecx, [esp + 0x104]
mov dword [esp + 0x24], 0xffffffff
push esi
call fcn.1000b98b
mov dword [esp + 0x2c], 0x9dda3143
mov dword [esp + 0x24], 0x36fa7abe
mov dword [esp + 0x10], ebx
jmp 0x100219eb
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x104]
mov dword [eax + ecx*4], 0xfffa
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x100219d5
mov dword [esp + 0x10], ebx
jmp 0x10021a0a
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x94], 0x24067bc6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x100219f7
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x104]
mov dword [esp + 0x94], eax
push 0xfffffffffffffffd
cmp eax, dword [esi + 0xc]
pop eax
setl cl
cmp eax, ecx
mov ecx, dword [esp + 0x24]
sbb eax, eax
inc eax
imul eax, dword [esi]
cmp eax, 0xaf8b5131
sbb eax, eax
inc eax
sub ecx, eax
mov eax, dword [esp + 0x104]
cmp ecx, dword [eax]
jl 0x10021a79
mov edx, ebx
cmp dword [esi + 0xc], ebx
je 0x10021a7b
mov edx, edi
mov eax, dword [esp + 0x2c]
xor ecx, ecx
cmp edx, eax
mov edi, 0xffff
mov eax, dword [esp + 0x104]
setl cl
xor edx, edx
cmp ecx, dword [eax + 8]
setge dl
cmp edx, dword [esp + 0x2c]
je 0x10021b51
mov dword [esp + 0x3c], 0xa6f4
mov dword [esp + 0x28], 0x7c7592e0
mov dword [esp + 0x34], 0x2575e7e8
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10021ad9
push 0x11bf
push ebx
push ebx
push 0x9d3
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x2c], ebx
jne 0x10021b0e
mov eax, dword [esp + 0x3c]
xor edx, edx
cmp eax, dword [esi + 0xc]
mov eax, dword [esp + 0x2c]
setge dl
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x28], 0x1a69
jl 0x10021b25
cmp dword [esp + 0x94], ebx
jne 0x10021b25
mov ecx, ebx
jmp 0x10021b28
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, dword [esi + 0xc]
setg al
cmp eax, edi
sbb eax, eax
xor edx, edx
neg eax
cmp eax, 0x7a76
mov eax, dword [esp + 0x3c]
setge dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [esp + 0x34], ecx
jmp 0x10021b64
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10021b64
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetCommTimeouts]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10021b7a
push 0x20fd
call dword [sym.imp.USER32.dll_IsZoomed]
lea ecx, [esp + 0x104]
call fcn.1000ba0d
mov dword [esp + 0x10], 0xffffffff
lea ecx, [esp + 0xbc]
mov dword [esp + 0x3c], 0xfc1da7bc
xor esi, esi
mov dword [esp + 0x28], 0xfffffffa
inc esi
mov dword [esp + 0x40], 7
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x1c], esi
push 3
call fcn.1000b98b
mov dword [esp + 0x48], 0x7a83
mov dword [esp + 0x4c], 8
push 3
mov dword [esp + 0x34], 0xfffffffb
mov dword [esp + 0x14], ebx
pop edx
jmp 0x10021bfa
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xbc]
mov dword [eax + ecx*4], 0x44bb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10021be4
mov dword [esp + 0x10], ebx
jmp 0x10021c99
mov dword [esp + 0x18], ebx
mov dword [esp + 0x30], 0xa062b000
mov dword [esp + 0x30], esi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x24], 0xfdb696
mov dword [esp + 0x18], ebx
jmp 0x10021c3e
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x280], 0xfa318711
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x10021c2b
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x1c]
test eax, eax
je 0x10021c64
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], esi
mov dword [esp + 0x18], 2
cmp dword [esp + 0x18], ebx
jl 0x10021c95
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x280], ebx
jne 0x10021c95
dec dword [esp + 0x18]
jns 0x10021c82
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffee
jg 0x10021c09
mov dword [esp + 0x1c], ebx
jmp 0x10021e01
mov dword [esp + 0x18], edx
xor edx, edx
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xbc]
cmp dword [eax + ecx*4], ebx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
setne dl
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x34], edx
xor edx, edx
mov esi, dword [esp + 0x34]
cmp dword [eax + ecx*4], esi
setg dl
mov dword [esp + 0x18], edx
xor edx, edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
cmp ecx, eax
setle dl
xor esi, esi
inc esi
cmp edx, esi
jl 0x10021dd4
mov dword [esp + 0x2c], 0x55a5
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], 0x2069719e
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setle cl
xor edx, edx
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xbc]
cmp dword [eax + ecx*4], 0xfd7f
setge dl
cmp edx, 0x64a47447
jg 0x10021d74
mov eax, esi
cmp dword [esp + 0x4c], ebx
jne 0x10021d76
mov eax, ebx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], esi
jae 0x10021d8a
cmp dword [esp + 0x18], ebx
jne 0x10021d8a
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
neg eax
sbb eax, eax
xor edx, edx
neg eax
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x3c]
cmp ecx, eax
mov eax, dword [esp + 0x1c]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x20]
setge cl
xor edx, edx
cmp ecx, 0xfffffff7
setg dl
xor ecx, ecx
cmp eax, 0xfffb
setne cl
sub ecx, edx
mov dword [esp + 0x20], ecx
jmp 0x10021dfa
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10021de8
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegConnectRegistryW]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10021dfa
push ebx
call dword [sym.imp.KERNEL32.dll_SetCommBreak]
inc dword [esp + 0x1c]
push 3
pop edx
cmp dword [esp + 0x1c], 2
jle 0x10021cad
lea ecx, [esp + 0xbc]
call fcn.1000ba0d
mov dword [esp + 0x34], 0x14a3
cmp dword [esp + 0x34], 0xafe
jge 0x10021f22
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x94]
push eax
push 0x10007808
call fcn.1005162b
add esp, 0xc
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x120]
push eax
lea eax, [esp + 0x84]
push eax
push 0x10007b28
call fcn.1005162b
add esp, 0x14
push 0x14
pop eax
cmp dword [esp + 0x90], eax
jl 0x10021ea3
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
dec eax
add eax, ecx
cdq
idiv ecx
imul eax, dword [esp + 0x64]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x10007de8]
jmp 0x10021f0e
sub eax, dword [esp + 0x90]
mov esi, dword [esp + 0x7c]
imul edi, eax, 0x3c
lea eax, [esi - 1]
add eax, dword [esp + 0x78]
cdq
idiv esi
sub edi, dword [esp + 0x140]
imul eax, dword [esp + 0x64]
imul edi, dword [esp + 0x118]
mov dword [esp + 0x34], eax
lea eax, [esi - 1]
add edi, dword [esp + 0x78]
add eax, edi
mov ecx, dword [esp + 0x34]
cdq
mov edi, 0xffff
idiv esi
imul eax, dword [esp + 0x64]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x10007de8]
cvttsd2si eax, xmm0
cmp ecx, eax
cmovl eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
push ecx
push ecx
movsd qword [esp], xmm0
push 0x10007b38
call fcn.10051846
add esp, 0xc
xor esi, esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10], ebx
inc esi
cmp dword [esp + 0x10], 2
jge 0x10021f45
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x22c], esi
inc dword [esp + 0x10]
jmp 0x10021f2d
mov dword [esp + 0x10], 0xfffffffc
jmp 0x10022039
mov dword [esp + 0x3c], 0x29bf390
mov dword [esp + 0x34], 0x90f9986e
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10021f74
push ebx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov dword [esp + 0x3c], esi
cmp dword [esp + 0x3c], ebx
jl 0x10022035
mov dword [esp + 0x20], 0x1220985a
mov dword [esp + 0x20], esi
cmp dword [esp + 0x20], ebx
jl 0x1002202b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 6
jg 0x10021f52
mov dword [esp + 0x10], 0xebf889e0
lea ecx, [esp + 0x160]
mov dword [esp + 0x2c], 0x417be187
mov dword [esp + 0x28], 0x652d0da0
mov dword [esp + 0x24], 0x4de6f885
mov dword [esp + 0x48], 0xad8ea5f3
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], 7
mov dword [esp + 0x30], 0xfffffffd
mov dword [esp + 0x30], 2
mov dword [esp + 0x30], esi
mov dword [esp + 0x30], 0xf6b34c2
mov dword [esp + 0x34], 0x8cd3bed1
push 3
call fcn.1000b98b
mov dword [esp + 0x40], esi
mov dword [esp + 0x10], ebx
jmp 0x100220cf
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xd4], 0xfffffff9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x100220bc
mov dword [esp + 0x10], ebx
jmp 0x100220f1
mov eax, 0x177e8edf
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x18], 0x1ced
mov dword [esp + 0x10], 0xfffffff8
mov dword [esp + 0x30], 0x3d57638f
mov dword [esp + 0x30], ebx
mov dword [esp + 0x30], 0xbc8b6976
mov dword [esp + 0x30], 0x83d4f39a
mov dword [esp + 0x30], 2
mov dword [esp + 0x30], 0x25e7
cmp dword [esp + 0x30], 0xcf6
jge 0x10022601
lea eax, [esp + 0x74]
mov ecx, 0x1065b470
push eax
call fcn.1000b67e
mov edi, dword [esp + 0x74]
jmp 0x100225f4
lea eax, [esp + 0x88]
dec edi
push eax
push ecx
lea eax, [esp + 0xa0]
mov dword [esp + 0x38], edi
push eax
mov ecx, 0x1065b470
call fcn.1000b67e
pop ecx
mov ecx, eax
call fcn.1000b67e
mov esi, dword [esp + 0x98]
mov edx, ebx
test esi, esi
jle 0x10022539
xor eax, eax
mov ecx, esi
inc eax
mov edi, 0x106dc060
rep stosd dword es:[edi], eax
mov dword [edx*4 + 0x1065d0f0], edx
inc edx
cmp edx, esi
jl 0x10022529
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x88]
jmp 0x100225a2
lea eax, [esp + 0xa0]
dec esi
push eax
push ecx
lea eax, [esp + 0x78]
mov ecx, 0x1065b470
push eax
call fcn.1000b67e
pop ecx
mov ecx, eax
call fcn.1000b67e
mov ecx, dword [esp + 0x70]
lea ecx, [ecx - 1]
call fcn.100205dc
mov ecx, dword [esp + 0xa0]
mov edx, eax
dec ecx
mov dword [esp + 0x70], edx
call fcn.100205dc
mov dword [esp + 0xa0], eax
cmp edx, eax
je 0x100225a2
mov ecx, dword [edx*4 + 0x106dc060]
add dword [eax*4 + 0x106dc060], ecx
mov dword [edx*4 + 0x1065d0f0], eax
test esi, esi
jne 0x10022542
mov eax, dword [esp + 0x98]
dec esi
mov dword [esp + 0x88], esi
mov ecx, 0x106dc060
mov byte [esp + 0xe4], bl
push dword [esp + 0xe4]
lea esi, [eax*4 + 0x106dc060]
mov eax, esi
mov edx, esi
sub eax, ecx
sar eax, 2
push eax
call fcn.1000ff74
pop ecx
pop ecx
push dword [esi - 4]
mov ecx, 0x1065b3b8
call fcn.1000b879
push eax
call fcn.1000f2a9
pop ecx
test edi, edi
jne 0x100224e8
dec edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x20], ebx
jmp 0x1002261a
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x2b4], 0xd3384f7a
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jl 0x10022607
cmp dword [esp + 0xfc], ebx
je 0x10022661
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10022647
push ebx
push 0xb5
push ebx
push 0x1c14
call dword [sym.imp.KERNEL32.dll_GetStringTypeW]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1002280b
call dword [sym.imp.KERNEL32.dll_SwitchToThread]
jmp 0x1002280b
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], 0x169ff9e6
mov dword [esp + 0x30], 0x1562
mov dword [esp + 0x40], 0xd69c043c
mov dword [esp + 0x20], ebx
jmp 0x10022696
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x180], 0xa31e468a
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 4
jl 0x10022683
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jne 0x100226b8
cmp dword [esp + 0x10], ebx
jne 0x100226b8
xor esi, esi
mov edx, ebx
inc esi
jmp 0x100226bd
xor esi, esi
inc esi
mov edx, esi
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xf4]
setg cl
add eax, ecx
cmp dword [esp + 0xfc], eax
jl 0x100226ec
mov dword [esp + 0x184], esi
cmp dword [esp + 0x184], ebx
jne 0x100226f7
jmp 0x100226f3
mov dword [esp + 0x184], ebx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], 0x231fbf68
cmp dword [esp + 0x2c], ebx
je 0x10022747
mov dword [esp + 0x34], 0x5300
mov dword [esp + 0x10], 0x10
jmp 0x10022727
mov dword [esp + 0x30], esi
mov dword [esp + 0x30], 8
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffffb
je 0x10022717
cmp dword [esp + 0x10], ebx
je 0x1002273c
mov eax, esi
cmp dword [esp + 0x34], ebx
jne 0x1002273e
mov eax, ebx
mov dword [esp + 0x2c], eax
jmp 0x10022807
mov dword [esp + 0x24], 0x9a67
lea ecx, [esp + 0xc8]
push 2
call fcn.1000b98b
mov dword [esp + 0x20], ebx
jmp 0x10022779
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xc8]
mov dword [eax + ecx*4], 0x23205e60
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 2
jl 0x10022763
mov ecx, dword [esp + 0x184]
xor edx, edx
mov eax, dword [esp + 0xc8]
cmp ecx, dword [eax]
mov eax, dword [esp + 0x18]
setle dl
sub edx, 0x19c36c1d
imul eax, edx
test eax, eax
je 0x100227b4
mov eax, dword [esp + 0xc8]
mov edx, esi
cmp dword [eax + 4], ebx
jne 0x100227b6
mov edx, ebx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0xfc]
mov eax, dword [esp + 0x184]
sub ecx, eax
mov eax, dword [esp + 0x24]
add eax, ecx
dec dword [esp + 0x28]
cmp eax, edx
mov eax, dword [esp + 0x2c]
mov edx, esi
cmovg edx, ebx
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xc8]
setl cl
xor edx, edx
test ecx, ecx
lea ecx, [esp + 0xc8]
sets dl
mov dword [eax + 4], edx
call fcn.1000ba0d
inc dword [esp + 0x40]
lea ecx, [esp + 0xa8]
call fcn.1001cd34
xor edi, edi
mov dword [esp + 0x10], 0xfffffffe
inc edi
mov dword [esp + 0x18], 0x8bea1220
mov dword [esp + 0x24], edi
lea ecx, [esp + 0x16c]
push edi
call fcn.1000b98b
mov dword [esp + 0x40], 0xb90f9986
mov dword [esp + 0x34], ebx
mov dword [esp + 0x48], 8
mov dword [esp + 0x30], 0xfffffff9
mov dword [esp + 0x20], ebx
jmp 0x10022873
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x16c]
mov dword [eax + ecx*4], 0x188753e1
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x1002285d
mov dword [esp + 0x10], 0xfffffff2
jmp 0x100228e5
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], 0x28ea3888
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x100228a6
push 0x22e8
push ebx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
mov eax, dword [esp + 0x28]
inc dword [esp + 0x28]
test eax, eax
jne 0x100228d5
mov ecx, dword [esp + 0x24]
xor edx, edx
mov eax, dword [esp + 0x18]
cmp ecx, eax
mov ecx, ebx
setge dl
xor eax, eax
cmp edx, 0xfffffff7
setge al
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], ebx
je 0x100228d7
mov ecx, edi
mov eax, dword [esp + 0x10]
sub eax, ecx
mov dword [esp + 0x30], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x1a
je 0x10022883
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x16c]
mov dword [eax], ecx
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x18], ebx
jne 0x10022931
mov eax, dword [esp + 0x34]
xor edx, edx
mov ecx, dword [esp + 0x16c]
sub dword [ecx], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [ecx]
cmp ecx, eax
mov eax, ebx
setg dl
cmp edx, dword [esp + 0x40]
jne 0x10022933
mov eax, edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x10], eax
jne 0x10022945
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x16c]
mov dword [esp + 0x30], edi
call fcn.1000ba0d
mov esi, dword [esp + 0x38]
test esi, esi
je 0x10022a0c
mov dword [esp + 0x30], 0xffffffff
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1002297e
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumCalendarInfoW]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1002298f
call dword [sym.imp.KERNEL32.dll_GetOEMCP]
mov edx, dword [esp + 0x54]
mov ecx, esi
call fcn.100205d2
mov dword [esp + 0x30], edi
mov esi, eax
mov dword [esp + 0x30], 0x60f57a7c
mov eax, 0x70ade216
mov dword [esp + 0x21c], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x54], 0x49f6d4a0
dec dword [esp + 0x54]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
mov dword [esp + 0xd8], esi
je 0x100229fd
push ebx
push 0xd77
push 0x14a2
push 0x1e24
call dword [sym.imp.GDI32.dll_SetDIBColorTable]
lea eax, [esp + 0x84]
push eax
call fcn.10023059
mov dword [eax], esi
mov eax, dword [ebp + 8]
lea esi, [esp + 0xd8]
mov ecx, dword [esp + 0x2e4]
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