Function at 0x41c20b
Capabilities:
Allocate thread local storage
Create pipe
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3ac
push ebx
push esi
push edi
push 3
mov edi, ecx
mov dword [esp + 0xcc], edx
pop esi
push esi
lea ecx, [esp + 0x280]
mov dword [esp + 0x15c], edi
call fcn.004133eb
push esi
lea ecx, [esp + 0x2bc]
call fcn.004133eb
xor ebx, ebx
inc ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x4c], 0
jmp 0x41c271
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x27c]
mov dword [eax + ecx*4], 0xcff0
inc dword [esp + 0x4c]
cmp dword [esp + 0x4c], esi
jl 0x41c25b
mov dword [esp + 0x4c], 0
jmp 0x41c297
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2b8]
mov dword [eax + ecx*4], 0xd1e1e87d
inc dword [esp + 0x4c]
cmp dword [esp + 0x4c], esi
jl 0x41c281
lea eax, [esp + 0x90]
push eax
lea edx, [esp + 0x280]
lea ecx, [esp + 0x2bc]
call fcn.0041b8cc
pop ecx
mov dword [esp + 0x90], 0
jmp 0x41c305
mov dword [esp + 0x15c], 0x1be360de
mov dword [esp + 0x150], 0xffffffff
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x150], eax
mov byte [esp + 0x23], 0
cmp byte [esp + 0x23], 0
je 0x41c2fe
push 0
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
inc dword [esp + 0x90]
cmp dword [esp + 0x90], ebx
jne 0x41c2c6
lea ecx, [esp + 0x2b8]
call fcn.004134bd
lea ecx, [esp + 0x27c]
call fcn.004134bd
mov dword [esp + 0x38], ebx
xor eax, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], 0xfffffff6
mov dword [esp + 0x14], eax
jmp 0x41c34d
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x3a8], esi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x41c33e
mov dword [esp + 0x14], eax
jmp 0x41c36d
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x36c], 0xfffffff7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x41c35a
mov dword [esp + 0x38], eax
jmp 0x41c3a7
mov dword [esp + 0x28], 0x61ab6ec7
mov dword [esp + 0x28], ebx
mov dword [esp + 0x28], 0x946507e
mov dword [esp + 0x28], eax
mov dword [esp + 0x120], 0x1d91e66
dec dword [esp + 0x120]
inc dword [esp + 0x38]
cmp dword [esp + 0x38], esi
jle 0x41c379
mov dword [esp + 0x38], 0xfffffff9
jmp 0x41c410
mov dword [esp + 0x10], ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x18], 0xffffffff
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x374]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x18], eax
jne 0x41c406
cmp dword [esp + 0x24], eax
je 0x41c408
mov ecx, ebx
mov dword [esp + 0x18], ecx
dec dword [esp + 0x38]
cmp dword [esp + 0x38], 0xffffffe5
jne 0x41c3b7
mov dword [esp + 0x18], 0x1713b910
lea ecx, [esp + 0x2a0]
mov dword [esp + 0x28], 0x751c76d7
mov dword [esp + 0x2c], 0x59b8bc58
push esi
call fcn.004133eb
mov dword [esp + 0x144], ebx
xor eax, eax
mov dword [esp + 0x14], 0x1c9b
mov dword [esp + 0xac], eax
jmp 0x41c46f
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0x2a0]
or dword [ecx + edx*4], 0xffffffff
inc dword [esp + 0xac]
cmp dword [esp + 0xac], esi
jl 0x41c456
push 0xfffffffffffffffe
mov dword [esp + 0x1c], eax
pop esi
jmp 0x41c514
mov dword [esp + 0x24], 4
mov dword [esp + 0x1c], 0xfffffffc
mov dword [esp + 0x1c], 0xfc35327
mov dword [esp + 0x10], eax
jmp 0x41c4b5
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x180], 0x5e1abe8f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x41c4a2
inc dword [esp + 0x144]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x14], eax
je 0x41c4e4
mov ecx, dword [esp + 0x184]
mov ecx, ebx
cmp dword [esp + 0x24], eax
jne 0x41c4e6
mov ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x184]
cmp dword [esp + 0x184], 0x7a2e
jl 0x41c506
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2a0]
or dword [ecx], 0xffffffff
dec dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jle 0x41c484
lea ecx, [esp + 0x2a0]
call fcn.004134bd
mov dword [esp + 0x24], 0xc03342eb
xor eax, eax
mov dword [esp + 0x14], 0x9e3c
mov dword [esp + 0x1c], 0xa0b59785
mov dword [esp + 0x1c], 0x69b42c51
mov dword [esp + 0x1c], 0xb2f67ab
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x2c], esi
mov dword [esp + 0x10], eax
jmp 0x41c575
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x178], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x41c566
mov byte [esp + 0x74], al
cmp byte [esp + 0x74], al
je 0x41c58e
push eax
call dword [sym.imp.USER32.dll_CharNextW]
xor eax, eax
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
neg esi
push 5
sbb esi, esi
xor edx, edx
neg esi
cmp esi, ecx
setle dl
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
cmp edx, ecx
mov ecx, dword [esp + 0x18]
setl bl
xor edx, edx
cmp ebx, ecx
setl dl
xor ebx, ebx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
add edx, 2
cmp edx, ecx
setne bl
xor esi, esi
add ebx, dword [esp + 0x18]
inc esi
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
neg edx
sbb edx, edx
inc edx
sub ecx, edx
imul ecx, ecx, 6
pop edx
push 0x646a
sub ecx, 6
cmp edx, ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x7a]
push ecx
push 0x3919
mov byte [esp + 0x82], al
push eax
call fcn.0041e693
add esp, 0x10
xor ecx, ecx
mov dword [esp + 0x24], ecx
jmp 0x41d27a
mov dword [esp + 0x3c], 0x5bf2d3f5
mov dword [esp + 0x10], ecx
jmp 0x41c686
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x238], 0x76eea530
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x41c673
mov edx, dword [esp + 0x3c]
sub edx, dword [esp + 0x3c]
neg edx
sbb edx, edx
xor ebx, ebx
add edx, 2
mov dword [esp + 0x238], edx
mov eax, dword [esp + 0x3c]
cmp edx, eax
mov eax, dword [esp + 0x3c]
setle bl
xor edx, edx
cmp ebx, eax
mov eax, dword [esp + 0x3c]
setl dl
xor ebx, ebx
add edx, 0xffffe053
cmp edx, eax
sete bl
sub ebx, 0xcb55
je 0x41c6dd
mov eax, esi
cmp dword [esp + 0x238], ecx
jne 0x41c6df
mov eax, ecx
cmp eax, dword [esp + 0x3c]
jge 0x41c7d2
push dword [esp + 0x124]
movdqa xmm0, xmmword [0xaa48d0]
lea eax, [esp + 0x354]
push eax
lea eax, [esp + 0x348]
mov dword [esp + 0x1b4], ecx
push eax
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1c0], ecx
push ecx
lea ecx, [esp + 0x1bc]
movdqu xmmword [esp + 0x350], xmm0
call fcn.00414b1a
xor eax, eax
mov dword [esp + 0x3c], eax
jmp 0x41c7b9
mov dword [esp + 0xc0], 0x6eab3cf8
mov dword [esp + 0xc0], esi
cmp dword [esp + 0xc0], eax
jl 0x41c7b5
mov esi, dword [esp + 0x1ac]
mov dword [esp + 0x1c], 0x243e5ec3
mov dword [esp + 0x10], eax
jmp 0x41c77e
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x11c], 0xfffffff8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x41c76b
mov ecx, dword [esp + 0x11c]
xor edx, edx
cmp ecx, 0x7128
setg dl
add edx, dword [esi + 4]
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x1c], ecx
dec dword [esp + 0xc0]
jns 0x41c75d
xor esi, esi
inc esi
inc dword [esp + 0x3c]
cmp dword [esp + 0x3c], 3
je 0x41c73b
lea ecx, [esp + 0x1ac]
call fcn.004134bd
jmp 0x41c7e5
mov byte [esp + 0x78], cl
cmp byte [esp + 0x78], 0
je 0x41c7e7
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
xor ecx, ecx
mov byte [esp + 0x7a], cl
cmp byte [esp + 0x7a], 0
je 0x41c7fe
push ecx
push ecx
push ecx
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
xor ecx, ecx
mov dword [esp + 0x18], 0xfffffffa
or ebx, 0xffffffff
mov dword [esp + 0x14], 0x13b91020
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x14], ecx
jmp 0x41c82a
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x360], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x41c81b
mov dword [esp + 0x14], ecx
jmp 0x41c846
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x2dc], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x41c837
mov dword [esp + 0x14], 7
jmp 0x41c9a9
push 3
lea ecx, [esp + 0x20c]
call fcn.004133eb
mov eax, 0xfffe
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x204], eax
xor eax, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x44], eax
jmp 0x41c8ab
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x208]
mov dword [ecx + edx*4], 6
inc dword [esp + 0x44]
cmp dword [esp + 0x44], 3
jl 0x41c895
mov dword [esp + 0x44], eax
jmp 0x41c8cb
mov ecx, dword [esp + 0x44]
mov dword [esp + ecx*4 + 0x2d4], 0xca335c22
inc dword [esp + 0x44]
cmp dword [esp + 0x44], 2
jl 0x41c8b8
mov esi, dword [esp + 0x208]
mov ecx, dword [esp + 0x14]
imul ecx, dword [esi + 8]
shl ecx, 2
test ecx, ecx
je 0x41c8f6
cmp dword [esp + 0x1fc], eax
je 0x41c8f6
xor ecx, ecx
inc ecx
jmp 0x41c8f8
mov ecx, eax
mov dword [esp + 0x1c], ecx
xor edx, edx
mov ecx, dword [esp + 0x1c]
cmp dword [esi + 8], ecx
setle dl
mov dword [esp + 0x2d4], edx
cmp dword [esp + 0x1fc], eax
jne 0x41c923
cmp dword [esp + 0x1c], eax
jne 0x41c923
xor esi, esi
inc esi
jmp 0x41c928
xor esi, esi
inc esi
mov eax, esi
cmp eax, 0xe9f21c9b
mov eax, dword [esp + 0x208]
sbb ecx, ecx
xor ebx, ebx
inc ecx
cmp dword [eax + 4], ecx
mov dword [esp + 0x368], ecx
mov eax, dword [esp + 0x14]
setg bl
inc ebx
neg ebx
sbb ebx, ebx
xor edx, edx
neg ebx
cmp ebx, eax
setne dl
sub edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1fc]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0x14]
setg cl
sub ecx, eax
mov eax, dword [esp + 0x14]
sub eax, ecx
lea ecx, [esp + 0x208]
neg eax
sbb eax, eax
or ebx, 0xffffffff
inc eax
mov dword [esp + 0x2e4], eax
mov eax, dword [esp + 0x2e4]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], ebx
call fcn.004134bd
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x11
jge 0x41c85a
mov eax, 0x22263126
lea ecx, [esp + 0x318]
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0xc4], 0xc45c
mov dword [esp + 0x140], ebx
push esi
call fcn.004133eb
push esi
lea ecx, [esp + 0x310]
call fcn.004133eb
xor eax, eax
mov dword [esp + 0x148], 0xbb5f37d7
mov dword [esp + 0x34], eax
jmp 0x41ca2a
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x318]
mov dword [ecx + edx*4], 0xfffffffd
inc dword [esp + 0x34]
cmp dword [esp + 0x34], esi
jl 0x41ca14
mov dword [esp + 0x34], eax
jmp 0x41ca4c
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30c]
mov dword [ecx + edx*4], 5
inc dword [esp + 0x34]
cmp dword [esp + 0x34], esi
jl 0x41ca36
mov ecx, dword [esp + 0xc4]
cmp ecx, dword [esp + 0xc4]
jne 0x41ca72
mov dword [esp + 0x140], 0xb6318d58
jmp 0x41cb2f
mov dword [esp + 0x194], 0xe4de
lea ecx, [esp + 0x2f4]
mov dword [esp + 0x19c], 0x9b93b3bb
mov dword [esp + 0x28], esi
mov dword [esp + 0x28], 0xfffffffe
mov dword [esp + 0x28], esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x28], 0x2dcbded6
mov dword [esp + 0x28], ebx
mov dword [esp + 0x28], 0x8e11f317
mov dword [esp + 0x28], 0xc03fdda7
push esi
call fcn.004133eb
mov dword [esp + 0xb4], 0
jmp 0x41caee
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x2f4]
mov dword [eax + ecx*4], 0x386b9bdd
inc dword [esp + 0xb4]
cmp dword [esp + 0xb4], esi
jl 0x41cad2
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x144]
push eax
lea edx, [esp + 0x1a4]
lea ecx, [esp + 0xcc]
call fcn.00417bdb
dec dword [esp + 0x150]
pop ecx
pop ecx
lea ecx, [esp + 0x2f4]
call fcn.004134bd
lea ecx, [esp + 0x30c]
call fcn.004134bd
lea ecx, [esp + 0x318]
call fcn.004134bd
mov dword [esp + 0x1c], 0xe57b
xor eax, eax
mov dword [esp + 0xd8], 0xd76ce4a6
mov dword [esp + 0x1a4], esi
mov dword [esp + 0x10], eax
jmp 0x41cb78
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x12c], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x41cb69
mov ecx, dword [esp + 0x1c]
xor ebx, ebx
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x130]
mov ecx, dword [esp + 0x130]
cmp edx, ecx
setne bl
mov dword [esp + 0xd8], ebx
cmp dword [esp + 0xd8], eax
je 0x41cbb5
cmp dword [esp + 0x1c], eax
jne 0x41cbb7
mov esi, eax
mov ecx, dword [esp + 0x1c]
xor edx, edx
cmp ecx, esi
setge dl
cmp edx, dword [esp + 0x12c]
jg 0x41cc2a
cmp dword [esp + 0x130], eax
jne 0x41cc2a
mov dword [esp + 0x138], 0xfffffffb
xor ebx, ebx
mov dword [esp + 0x128], 0xf81320f2
mov edx, dword [esp + 0x138]
mov ecx, dword [esp + 0x1a4]
cmp edx, ecx
setne bl
mov dword [esp + 0x128], ebx
xor ebx, ebx
mov edx, dword [esp + 0x128]
mov ecx, dword [esp + 0x138]
cmp ecx, edx
setl bl
add ebx, 0xcd44
mov dword [esp + 0xd8], ebx
jmp 0x41cc42
mov byte [esp + 0x75], al
cmp byte [esp + 0x75], al
je 0x41cc42
push 0xae5
push eax
call dword [sym.imp.KERNEL32.dll_WaitNamedPipeA]
xor eax, eax
mov byte [esp + 0x83], al
cmp byte [esp + 0x83], 0
je 0x41cc61
push 0x1eaf
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
xor eax, eax
push 3
mov dword [esp + 0x14], eax
pop ebx
jmp 0x41cc79
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x378], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x41cc6a
mov dword [esp + 0x18], 9
jmp 0x41ceb8
mov dword [esp + 0x10], 0xfffffff7
mov dword [esp + 0x10], eax
jmp 0x41ccad
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x2e8], 0xfffffffd
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x41cc9a
mov dword [esp + 0x10], 2
cmp dword [esp + 0x10], eax
jl 0x41ccdd
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + ecx*4 + 0x2e8]
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x2e8], edx
dec dword [esp + 0x10]
jns 0x41ccc1
mov byte [esp + 0x79], al
mov dword [esp + 0x68], 0xb9f9b31
mov dword [esp + 0x13c], 0xd686a37b
mov dword [esp + 0x68], 0xffffffe6
jmp 0x41ce86
mov dword [esp + 0x6c], 0xc6f1bf50
mov dword [esp + 0x190], 0xffffffff
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0xfffffffc
jne 0x41ce56
mov dword [esp + 0xa0], 0xffffffff
lea ecx, [esp + 0x2ac]
mov dword [esp + 0x110], 0xfffe
push 4
call fcn.004133eb
xor eax, eax
mov dword [esp + 0xbc], eax
jmp 0x41cd6e
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x2ac]
mov dword [ecx + edx*4], 0xe497d6a5
inc dword [esp + 0xbc]
cmp dword [esp + 0xbc], 4
jl 0x41cd52
mov ecx, dword [esp + 0x68]
add ecx, 0x5677ea35
je 0x41cdbf
cmp dword [esp + 0x6c], eax
jne 0x41cdaa
mov ecx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x68]
mov ecx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
cmp dword [esp + 0x110], eax
je 0x41cdbf
xor ecx, ecx
inc ecx
jmp 0x41cdc1
mov ecx, eax
mov dword [esp + 0x13c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18c], 0xffffffff
mov dword [esp + 0x160], eax
mov byte [esp + 0x77], al
cmp byte [esp + 0x77], al
je 0x41cdf1
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToTzSpecificLocalTime]
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x2b0]
push eax
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0x1a0]
push eax
lea eax, [esp + 0x124]
push eax
lea eax, [esp + 0x1a4]
push eax
lea edx, [esp + 0x17c]
lea ecx, [esp + 0x158]
call fcn.00417f0c
add esp, 0x1c
lea ecx, [esp + 0x2ac]
call fcn.004134bd
dec dword [esp + 0x6c]
cmp dword [esp + 0x6c], 0xfffffffc
je 0x41cd23
xor eax, eax
mov byte [esp + 0x8e], al
cmp byte [esp + 0x8e], 0
je 0x41ce82
push 0x2471
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetROP2]
xor eax, eax
inc dword [esp + 0x68]
cmp dword [esp + 0x68], 0xfffffff4
jg 0x41cd01
push 0x475a
push eax
push 0x1dd8
lea eax, [esp + 0x85]
push 0x4fcb
push eax
call fcn.00421ad0
add esp, 0x14
dec dword [esp + 0x18]
push 0
pop eax
cmp dword [esp + 0x18], 0xffffffe2
je 0x41cc8c
xor esi, esi
inc esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x9c], 0xc5416513
mov dword [esp + 0x2c], 0x8dc509ca
mov dword [esp + 0x2c], 0xb187b35f
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x58], 0xffffffea
cmp dword [esp + 0x58], 0xffffffee
jne 0x41d04b
push ebx
lea ecx, [esp + 0x25c]
call fcn.004133eb
mov dword [esp + 0x7c], 0xf2d3f504
xor eax, eax
mov dword [esp + 0x1c], 7
mov dword [esp + 0x54], eax
jmp 0x41cf38
mov ecx, dword [esp + 0x54]
mov dword [esp + ecx*4 + 0xec], 0x36951ad3
inc dword [esp + 0x54]
cmp dword [esp + 0x54], ebx
jl 0x41cf25
mov dword [esp + 0x54], eax
jmp 0x41cf5a
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x258]
mov dword [ecx + edx*4], 0x4aa0d722
inc dword [esp + 0x54]
cmp dword [esp + 0x54], ebx
jl 0x41cf44
mov dword [esp + 0xf0], eax
jmp 0x41cf7c
mov dword [esp + 0x28], 9
dec dword [esp + 0x7c]
dec dword [esp + 0xf0]
cmp dword [esp + 0xf0], 0xffffffe9
jge 0x41cf69
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x7c], ecx
jle 0x41cf96
cmp dword [esp + 0x58], eax
jne 0x41cf98
mov esi, eax
mov eax, dword [esp + 0x58]
xor ecx, ecx
cmp eax, 0x43e2
setg cl
xor edx, edx
mov dword [esp + 0x9c], ecx
mov eax, dword [esp + 0x9c]
cmp eax, esi
mov eax, dword [esp + 0x58]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, dword [esp + 0x7c]
je 0x41cfd3
mov eax, dword [esp + 0xf0]
mov eax, dword [esp + 0x7c]
xor ebx, ebx
mov ecx, dword [esp + 0x258]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x1c]
cmp dword [ecx + 8], eax
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0xf0]
setle bl
imul edx, ebx
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xf0]
mov eax, dword [esp + 0x7c]
cmp ecx, eax
mov eax, dword [esp + 0x7c]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x258]
call fcn.004134bd
inc dword [esp + 0x58]
cmp dword [esp + 0x58], 0xffffffee
push 1
pop esi
push 3
pop ebx
je 0x41cf00
xor ecx, ecx
mov dword [esp + 0x9c], 0xffffffff
cmp dword [esp + 0x9c], ecx
jge 0x41d072
mov eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
inc dword [esp + 0x9c]
js 0x41d061
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ecx
jl 0x41d276
push 2
lea ecx, [esp + 0x298]
call fcn.004133eb
lea eax, [esp + 0x168]
mov dword [esp + 0x28], 0xd1d9d65f
push 0x4440
push eax
xor dl, dl
lea ecx, [esp + 0x29c]
call fcn.004198f4
mov dword [esp + 0x24], 0xfffffffa
xor eax, eax
mov dword [esp + 0x18], 0xe76d238e
mov dword [esp + 0x18], 0x8ef068cd
pop ecx
mov dword [esp + 0x18], 0xdedfc3e8
pop ecx
mov dword [esp + 0x10], eax
jmp 0x41d0ea
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xf8], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x41d0db
cmp dword [esp + 0x100], eax
je 0x41d154
mov ecx, dword [esp + 0x100]
xor ebx, ebx
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x100]
mov ecx, dword [esp + 0x10]
cmp ecx, edx
mov edx, dword [esp + 0x100]
setg bl
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, ebx
setg cl
mov dword [esp + 0xfc], ecx
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add ecx, 0xa95f4cb7
add ecx, edx
cmp ecx, 0xfc2e607d
ja 0x41d156
mov esi, eax
mov ecx, dword [esp + 0x1c]
xor edx, edx
cmp esi, 0xfffb
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
setne dl
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [esp + 0x1c]
setne bl
xor edx, edx
cmp ecx, ebx
mov ecx, dword [esp + 0x14]
setg dl
mov dword [esp + 0x2c], edx
xor edx, edx
cmp dword [esp + 0x2c], ecx
setg dl
neg edx
cmp edx, dword [esp + 0x14]
jg 0x41d1a5
cmp dword [esp + 0x100], eax
jne 0x41d1a5
mov esi, eax
jmp 0x41d1a8
xor esi, esi
inc esi
mov ecx, dword [esp + 0x14]
xor edx, edx
cmp esi, ecx
setg dl
sub edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
mov dword [esp + 0x14], 2
cmp dword [esp + 0x14], eax
jl 0x41d1e5
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + ecx*4 + 0xf8]
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0xf8], edx
dec dword [esp + 0x14]
jns 0x41d1c9
cmp dword [esp + 0x1ec], eax
je 0x41d201
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1f4]
mov eax, dword [esp + 0x1f0]
xor esi, esi
mov eax, dword [esp + 0x24]
inc esi
mov eax, dword [esp + 0x294]
mov dword [eax], esi
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x37c], esi
call fcn.0041bc12
mov byte [esp + 0x88], 0
cmp byte [esp + 0x88], 0
je 0x41d25b
call fcn.0041b69f
xor eax, eax
push eax
push eax
push 0x1250
push eax
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
lea ecx, [esp + 0x294]
call fcn.004134bd
dec dword [esp + 0x18]
push 3
pop ebx
jns 0x41d080
xor ecx, ecx
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0x12
jne 0x41c665
cmp dword [edi + 0x10], ecx
jne 0x41d291
xor al, al
jmp 0x41e561
mov eax, dword [esp + 0xc8]
mov dword [eax], ecx
mov dword [esp + 0x18], 0xec2db221
mov dword [esp + 0x1c], 0x27603859
mov dword [esp + 0x1c], 0x70a3267e
mov dword [esp + 0x14], 0x19f23e52
mov dword [esp + 0x10], ecx
jmp 0x41d2d3
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x118], 0xf1a969ac
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x41d2c0
mov eax, dword [esp + 0x18]
xor ebx, ebx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
imul edx, dword [esp + 0x18], 0x4fda
mov eax, dword [esp + 0x1c]
cmp eax, edx
setl bl
mov dword [esp + 0x1c], ebx
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp eax, esi
mov eax, dword [esp + 0x118]
setg dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [esp + 0x18]
setl bl
xor edx, edx
cmp eax, ebx
mov eax, dword [esp + 0x118]
setle dl
xor ebx, ebx
cmp edx, eax
setl bl
sub ebx, dword [esp + 0x14]
mov dword [esp + 0x14], ebx
mov byte [esp + 0x7b], cl
cmp byte [esp + 0x7b], 0
je 0x41d356
push ecx
push ecx
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
xor ecx, ecx
cmp dword [edi + 0x14], 0x10
jb 0x41d360
mov edx, dword [edi]
jmp 0x41d362
mov edx, edi
xor ebx, ebx
inc ebx
cmp dword [edi + 0x14], 0x10
mov dword [esp + 0xd4], edx
jb 0x41d376
mov esi, dword [edi]
jmp 0x41d378
mov esi, edi
mov eax, dword [edi + 0x10]
add eax, esi
cmp edx, eax
je 0x41e55a
mov al, byte [edx]
cmp al, 0x30
jl 0x41e37d
cmp al, 0x39
jg 0x41e37d
push 3
pop edi
mov dword [esp + 0x64], ebx
lea ecx, [esp + 0x324]
mov dword [esp + 0x18], 0x609c3fbb
push edi
call fcn.004133eb
xor eax, eax
mov dword [esp + 0xb8], eax
jmp 0x41d3d6
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x324]
mov dword [ecx + edx*4], ebx
inc dword [esp + 0xb8]
cmp dword [esp + 0xb8], edi
jl 0x41d3be
mov esi, ebx
cmp dword [esp + 0x64], eax
jne 0x41d3e9
mov esi, eax
mov ecx, dword [esp + 0x64]
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x64]
cmp esi, ecx
setle dl
imul ecx, dword [esp + 0x18], 0xbb09cedc
cmp ecx, edx
jl 0x41d467
mov dword [esp + 0x14], 0x13e13a6c
mov dword [esp + 0x1c], 0x628405ce
mov dword [esp + 0x10], eax
jmp 0x41d431
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x384], 0xfffffff6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x41d41e
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
neg ecx
mov dword [esp + 0x384], eax
sbb ecx, ecx
neg ecx
imul ecx, eax
mov dword [esp + 0x18], ecx
jmp 0x41d4a3
mov dword [esp + 0x18], 0xfffffff2
jmp 0x41d49c
mov dword [esp + 0x64], eax
jmp 0x41d491
mov byte [esp + 0x73], al
cmp byte [esp + 0x73], 0
je 0x41d48d
push eax
push eax
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringByteLen]
xor eax, eax
inc dword [esp + 0x64]
cmp dword [esp + 0x64], 0x14
jg 0x41d477
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffed
je 0x41d471
lea ecx, [esp + 0x324]
call fcn.004134bd
mov dword [esp + 0x94], 0xb26bdde0
mov dword [esp + 0x94], 0xfffffffa
jmp 0x41d4f2
cmp dword [esp + 0x94], 0
jne 0x41d4fc
mov byte [esp + 0x81], 0
cmp byte [esp + 0x81], 0
je 0x41d4eb
push 0
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
dec dword [esp + 0x94]
cmp dword [esp + 0x94], 0xfffffff3
je 0x41d4c7
mov dword [esp + 0x1a0], ebx
xor eax, eax
mov dword [esp + 0x1d8], 0x37186542
mov dword [esp + 0x198], 0xa61928c1
mov dword [esp + 0x1c8], 8
mov dword [esp + 0x164], eax
mov byte [esp + 0x23], al
cmp byte [esp + 0x23], al
je 0x41d545
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_EndPaint]
lea eax, [esp + 0x1c8]
push eax
lea edx, [esp + 0x168]
lea ecx, [esp + 0x19c]
call fcn.0041bd70
pop ecx
mov dword [esp + 0x1a8], 0x3580d416
lea ecx, [esp + 0x240]
mov dword [esp + 0x1c], 9
push 2
call fcn.004133eb
push edi
lea ecx, [esp + 0x274]
call fcn.004133eb
xor eax, eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x48], eax
jmp 0x41d5b4
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x240]
mov dword [ecx + edx*4], 0x14c405b4
inc dword [esp + 0x48]
cmp dword [esp + 0x48], 2
jl 0x41d59e
mov dword [esp + 0x48], eax
jmp 0x41d5d7
mov dword [esp + 0x10], 0x862fd41e
mov dword [esp + 0x10], 0xffffffef
cmp dword [esp + 0x10], 0xfffffff3
jle 0x41e535
push 3
pop edi
mov dword [esp + 0x18], ecx
jmp 0x41e3b4
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x1dc], 0x2167fa5c
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x41e3a1
mov dword [esp + 0x1e4], ecx
cmp dword [esp + 0x1e4], 0xfffffff1
jne 0x41e526
push 2
lea ecx, [esp + 0x268]
call fcn.004133eb
xor eax, eax
mov dword [esp + 0x18], 0x9ba095a9
mov dword [esp + 0xb0], eax
jmp 0x41e40c
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x264]
mov dword [ecx + edx*4], 0xc000
inc dword [esp + 0xb0]
cmp dword [esp + 0xb0], 2
jl 0x41e3f0
cmp dword [esp + 0x10], eax
jne 0x41e518
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], eax
jl 0x41e4f5
mov dword [esp + 0x98], 0xffffffff
mov dword [esp + 0x124], 0xfffffffc
mov dword [esp + 0x98], 0xd4a0d461
mov dword [esp + 0x98], eax
jmp 0x41e4de
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xa8], eax
jmp 0x41e4ce
mov dword [esp + 0x1c], 0x8f4f823a
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], eax
jl 0x41e4c7
mov dword [esp + 0x114], 0xbefc
mov edx, dword [esp + 0x114]
mov ecx, dword [esp + 0x114]
neg edx
sbb edx, edx
neg edx
add ecx, edx
neg ecx
mov dword [esp + 0x124], ecx
mov byte [esp + 0x8a], al
cmp byte [esp + 0x8a], 0
je 0x41e4c1
push eax
call dword [sym.imp.GDI32.dll_CreateBitmapIndirect]
xor eax, eax
dec dword [esp + 0x1c]
jns 0x41e47d
inc dword [esp + 0xa8]
cmp dword [esp + 0xa8], ebx
jle 0x41e46b
inc dword [esp + 0x98]
cmp dword [esp + 0x98], ebx
jle 0x41e45b
dec dword [esp + 0x18]
jns 0x41e42e
lea ecx, [esp + 0x264]
call fcn.004134bd
dec dword [esp + 0x1e4]
cmp dword [esp + 0x1e4], 0xfffffff1
je 0x41e3cf
jmp 0x41e524
lea ecx, [esp + 0x264]
call fcn.004134bd
xor ecx, ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff3
jg 0x41e39b
lea eax, [esp + 0xc8]
mov dl, bl
push eax
push 0x2d05
mov ecx, 0x4a2c
call fcn.004198f4
pop ecx
pop ecx
call fcn.0041ba78
jmp 0x41d28a
call fcn.00418141
mov al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret