Function at 0x46af16
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x188
push esi
push edi
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x54]
push 3
mov dword [esp + 0x54], edx
call fcn.0043324a
xor eax, eax
mov dword [esp + 0x1c], 0x79c63c40
mov dword [esp + 8], eax
jmp 0x46af5a
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x9c], 0xfff7
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x46af47
mov dword [esp + 8], eax
jmp 0x46af7a
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x54]
mov dword [ecx + edx*4], 7
inc dword [esp + 8]
cmp dword [esp + 8], 3
jl 0x46af67
mov ecx, dword [esp + 0x54]
xor edi, edi
inc edi
mov dword [ecx], edi
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x46afa1
push eax
push eax
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateEventA]
xor eax, eax
mov ecx, dword [esp + 0x54]
push 0
mov esi, dword [ecx]
xor ecx, ecx
cmp esi, 8
setne cl
mov edx, dword [esp + esi*4 + 0xa0]
cmp edx, ecx
mov ecx, dword [esp + esi*4 + 0xa0]
pop edx
sete dl
add ecx, 0x5121ac48
cmp ecx, edx
push 0
pop ecx
setne cl
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx]
mov ecx, dword [esp + ecx*4 + 0x9c]
cmp dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x54]
setl dl
mov dword [esp + 0x1c], edx
dec dword [ecx]
jns 0x46af8a
lea ecx, [esp + 0x54]
call fcn.0043331c
xor eax, eax
mov dword [esp + 0x18], 0xfffffffa
mov dword [esp + 0x18], eax
jmp 0x46b042
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x20], eax
jmp 0x46b030
mov ecx, dword [esp + 0x20]
mov dword [esp + ecx*4 + 0x7c], 0x69f4
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x46b020
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x1c], ecx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x12
jl 0x46b012
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x46b068
push eax
push eax
push 0x18e4
push 0x1123
push eax
call dword [sym.imp.USER32.dll_ModifyMenuW]
xor eax, eax
mov ecx, dword [0xaa8170]
test cl, 1
jne 0x46b0f2
push eax
or ecx, edi
mov dword [0xaa8130], eax
push eax
mov dword [0xaa8170], ecx
mov dword [0xaa8134], eax
call fcn.004039e9
mov dword [0xaa8130], eax
xor esi, esi
mov dword [esp + 0xa4], eax
mov ecx, 0xaa8138
lea eax, [esp + 0xa4]
mov dword [0xaa8138], esi
push eax
push 0x10
push esi
lea eax, [esp + 0x148]
mov dword [0xaa8140], esi
push eax
mov dword [0xaa814c], 0x3f800000
mov dword [0xaa813c], esi
call fcn.0040371f
push 0x4adc73
mov dword [0xaa8144], 7
mov dword [0xaa8148], 8
call fcn.00489f3f
pop ecx
xor eax, eax
mov dword [esp + 0x10], 0xfffffff8
mov dword [esp + 0x20], eax
jmp 0x46b112
mov ecx, dword [esp + 0x20]
mov dword [esp + ecx*4 + 0x6c], 0x5711
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 4
jl 0x46b102
push 3
pop esi
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], eax
jl 0x46b223
mov dword [esp + 0x14], 0x37fc0549
xor edx, edx
mov dword [esp + 0x1c], 0x8af066b7
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + ecx*4 + 0x6c]
mov ecx, dword [esp + 0x74]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x74]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + ecx*4 + 0x6c]
test ecx, ecx
mov ecx, dword [esp + 0x70]
setns dl
sub edx, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
xor edx, edx
mov ecx, dword [esp + ecx*4 + 0x6c]
cmp dword [esp + 0x1c], ecx
sete dl
imul ecx, edx, 0xab1d
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + ecx*4 + 0x6c]
mov edx, dword [esp + 0x1c]
sub edx, 0xbc6c
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, esi
setne cl
inc ecx
je 0x46b1c3
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x46b216
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
jmp 0x46b214
mov dword [esp + 0x14], 0xfffffff3
jmp 0x46b1f5
cmp byte [esp + 0xf], 0
je 0x46b1f1
push eax
push 0x820
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPointW]
xor eax, eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffff6
mov byte [esp + 0xf], al
jge 0x46b1cd
cmp byte [esp + 0xf], 0
je 0x46b216
push 0x845
push eax
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
xor eax, eax
dec dword [esp + 0x10]
jns 0x46b12a
push 3
pop esi
imul eax, dword [esp + 0x30], 0x2710
lea ecx, [esp + 0xb8]
push esi
add eax, dword [esp + 0x54]
mov dword [esp + 0x50], eax
call fcn.0043324a
mov dword [esp + 0x1c], edi
xor eax, eax
mov dword [esp + 0x1c], 0xfffffff8
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], 0xfffffffc
mov dword [esp + 8], eax
jmp 0x46b276
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [ecx + edx*4], 9
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x46b260
mov dword [esp + 8], eax
jmp 0x46b295
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x12c], 0x6446bd29
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x46b282
mov dword [esp + 8], eax
jmp 0x46b2b4
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0xd0], 0xdd711a53
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x46b2a1
mov esi, dword [esp + 0xb8]
mov dword [esp + 0x28], esi
mov ecx, dword [esi + 8]
lea edx, [ecx - 1]
mov dword [esi + 8], edx
test ecx, ecx
je 0x46b33f
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x1c]
add edx, edx
mov esi, dword [esi + 8]
sub ecx, edx
xor edx, edx
cmp ecx, esi
push 0
setl dl
xor ecx, ecx
cmp esi, edx
mov esi, dword [esp + 0x2c]
sete cl
xor edx, edx
imul ecx, ecx, 0xfffffffa
mov esi, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
cmp esi, ecx
sete dl
xor ecx, ecx
imul edx, esi
cmp edx, esi
mov esi, dword [esp + 0x2c]
setne cl
imul edx, ecx, 0x45
mov ecx, dword [esp + 0xbc]
cmp dword [ecx], edx
mov ecx, dword [esi + 8]
pop edx
setge dl
add ecx, edx
mov dword [esp + 0x130], edx
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0x14]
cmp edx, ecx
mov ecx, dword [esp + 0x14]
push 0
pop edx
setle dl
imul ecx, dword [esp + 0x14]
imul ecx, edx
test ecx, ecx
je 0x46b379
mov ecx, edi
cmp dword [esp + 0x134], eax
jne 0x46b37b
mov ecx, eax
xor edx, edx
cmp ecx, edi
setle dl
xor ecx, ecx
cmp edx, 5
setl cl
cmp ecx, dword [esp + 0x24]
jl 0x46b397
mov ecx, eax
cmp dword [esi + 8], eax
je 0x46b399
mov ecx, edi
mov dword [esp + 0x14], ecx
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x46b3d8
push 0x20e7
push eax
push 0xb0f
push 0x661
push 0xd0f
push eax
push 0x2c
push 0x6fb
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawIconEx]
lea ecx, [esp + 0xb8]
call fcn.0043331c
lea eax, [esp + 0x4c]
push eax
call fcn.0046c10f
mov eax, dword [eax]
test eax, eax
je 0x46b400
mov dword [esp + 0x80], eax
jmp 0x46c08b
mov dword [esp + 0x28], 0x9869
lea ecx, [esp + 0xe4]
mov dword [esp + 0x2c], 0x2e96673e
mov dword [esp + 0x18], 0xfffffffe
mov dword [esp + 0x24], 0xd3aeb590
push 2
mov dword [esp + 0x24], edi
pop esi
mov dword [esp + 0x1c], 0xf38d
mov dword [esp + 0x10], 0x9193c1de
mov dword [esp + 0x14], 0xebd004dd
push esi
call fcn.0043324a
push edi
lea ecx, [esp + 0x10c]
call fcn.0043324a
mov dword [esp + 8], 0xddaf
xor eax, eax
mov dword [esp + 0x2c], 0xfffffff7
mov dword [esp + 8], eax
jmp 0x46b480
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0xfc], edi
inc dword [esp + 8]
cmp dword [esp + 8], 3
jl 0x46b471
mov dword [esp + 8], eax
jmp 0x46b4a3
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xe4]
mov dword [ecx + edx*4], 0xfffffffa
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x46b48d
mov dword [esp + 8], eax
jmp 0x46b4c5
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x108]
mov dword [ecx + edx*4], 0xfffffffa
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x46b4af
cmp dword [esp + 0x28], eax
jne 0x46b4e7
dec dword [esp + 0x1c]
je 0x46b4e3
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0x108]
dec dword [ecx]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x104]
cmp dword [esp + 0x100], eax
mov dword [esp + 0x24], eax
je 0x46b665
mov dword [esp + 0x20], esi
lea ecx, [esp + 0xf0]
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], 0x779e
push edi
call fcn.0043324a
push 3
lea ecx, [esp + 0xdc]
call fcn.0043324a
xor esi, esi
push 4
mov dword [esp + 0xc], esi
pop edx
jmp 0x46b561
mov eax, dword [esp + 8]
mov dword [esp + eax*4 + 0x170], 0xd30663b
inc dword [esp + 8]
cmp dword [esp + 8], edx
jl 0x46b54e
mov dword [esp + 8], esi
jmp 0x46b580
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xf0]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x46b56d
mov dword [esp + 8], esi
jmp 0x46b59e
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xd8]
mov dword [eax + ecx*4], edx
inc dword [esp + 8]
cmp dword [esp + 8], 3
jl 0x46b58c
mov ecx, dword [esp + 0x28]
xor edx, edx
mov eax, dword [esp + 0x24]
cmp eax, ecx
mov eax, dword [esp + 0xe4]
setg dl
mov dword [eax + 4], edx
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setne cl
imul eax, ecx, 0xd4d3
xor ecx, ecx
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp eax, 0xfff8
setne cl
sub ecx, 7
jne 0x46b60a
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x24], 0xffff7b62
test eax, eax
je 0x46b61a
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov eax, dword [esp + 0x28]
cmp eax, 0x7725
mov eax, dword [esp + 0xf0]
setge cl
mov dword [esp + 0x104], ecx
mov dword [eax], ecx
mov eax, dword [esp + 0xd8]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xd8]
call fcn.0043331c
lea ecx, [esp + 0xf0]
call fcn.0043331c
push 2
xor eax, eax
pop esi
jmp 0x46b68a
mov dword [esp + 0x1c], edi
mov edx, eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x24], eax
je 0x46b67b
mov edx, edi
mov ecx, dword [esp + 0x1c]
sub ecx, edx
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 8], ecx
mov dword [esp + 0x10], eax
jmp 0x46b6ae
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x46b6aa
push eax
push eax
push 0x2409
call dword [sym.imp.KERNEL32.dll_GetModuleHandleExW]
xor eax, eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x15
jle 0x46b690
lea ecx, [esp + 0x108]
call fcn.0043331c
lea ecx, [esp + 0xe4]
call fcn.0043331c
mov eax, dword [0xaa8170]
test al, 2
jne 0x46b75a
or eax, esi
xor esi, esi
push esi
push esi
mov dword [0xaa8170], eax
mov dword [0xaa8150], esi
mov dword [0xaa8154], esi
call fcn.004039e9
mov dword [0xaa8150], eax
mov ecx, 0xaa8158
mov dword [esp + 0x98], eax
lea eax, [esp + 0x98]
push eax
push 0x10
push esi
lea eax, [esp + 0x144]
mov dword [0xaa8158], esi
push eax
mov dword [0xaa8160], esi
mov dword [0xaa816c], 0x3f800000
mov dword [0xaa815c], esi
call fcn.0040371f
push 0x4adc6e
mov dword [0xaa8164], 7
mov dword [0xaa8168], 8
call fcn.00489f3f
pop ecx
push 3
pop esi
mov dword [esp + 0x10], edi
lea ecx, [esp + 0x8c]
mov dword [esp + 0x24], 0xa05d
mov dword [esp + 0x18], 0xe7ad53a3
push esi
call fcn.0043324a
push edi
lea ecx, [esp + 0x15c]
call fcn.0043324a
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x2c], 0xffff
mov dword [esp + 8], eax
jmp 0x46b7bd
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + edx*4], 0xfffffffa
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x46b7a7
mov dword [esp + 8], eax
jmp 0x46b7df
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x158]
mov dword [ecx + edx*4], 0x5cf63547
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x46b7c9
mov dword [esp + 8], eax
jmp 0x46b7fa
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x114], edi
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x46b7eb
cmp dword [esp + 0x10], eax
jne 0x46b81d
mov ecx, dword [esp + 0x10]
xor edx, edx
cmp ecx, 0x3b7beded
mov esi, eax
setge dl
cmp dword [esp + 0x10], edx
jg 0x46b81f
mov esi, edi
mov ecx, dword [esp + 0x10]
xor edx, edx
cmp ecx, esi
setge dl
cmp edx, dword [esp + 0x10]
jge 0x46b97b
mov dword [esp + 0x1c], 0xad816f93
lea ecx, [esp + 0xc4]
mov dword [esp + 0x14], edi
push 3
call fcn.0043324a
xor esi, esi
mov dword [esp + 0x20], 0x63523e24
mov dword [esp + 8], esi
jmp 0x46b86d
mov eax, dword [esp + 8]
mov dword [esp + eax*4 + 0x140], esi
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x46b85e
push 3
mov dword [esp + 0xc], esi
pop edx
jmp 0x46b890
mov eax, dword [esp + 8]
mov dword [esp + eax*4 + 0x164], 0xb63e91c
inc dword [esp + 8]
cmp dword [esp + 8], edx
jl 0x46b87d
mov dword [esp + 8], esi
jmp 0x46b8ae
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc4]
mov dword [eax + ecx*4], edx
inc dword [esp + 8]
cmp dword [esp + 8], edx
jl 0x46b89c
cmp dword [esp + 0x10], esi
jne 0x46b8c1
dec dword [esp + 0x16c]
mov ecx, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esp + 0x8c]
mov eax, dword [eax]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x1c]
cmp eax, ecx
mov eax, dword [esp + 0x10]
setge dl
sub eax, edx
neg eax
sbb eax, eax
inc eax
sub eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
neg eax
sbb eax, eax
inc eax
sub ecx, eax
imul ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc4]
imul ecx, dword [eax]
mov eax, dword [esp + 0x8c]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, dword [eax + 4]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc4]
setl dl
imul ecx, edx
xor edx, edx
cmp ecx, dword [eax]
setne dl
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], 0x19
jg 0x46b96d
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x1c], 0x5dbfe6b8
xor edx, edx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
cmp eax, ecx
setle dl
mov dword [esi + 8], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x19
jle 0x46b948
lea ecx, [esp + 0xc4]
call fcn.0043331c
jmp 0x46b9bc
push 0xfffffffffffffffe
pop edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
jmp 0x46b99b
mov ecx, dword [esp + 0x20]
mov dword [esp + ecx*4 + 0x154], edx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x46b98c
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x46b9b8
push eax
push 0x11ab
push eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
inc dword [esp + 0x28]
mov eax, dword [esp + 0x118]
xor edx, edx
mov dword [esp + 0x11c], 0x2a2c
mov eax, dword [esp + 0x24]
test eax, eax
setg dl
xor ecx, ecx
add edx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
cmp edx, eax
setle cl
cmp dword [esp + 0x18], ecx
jle 0x46b9f2
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
mov ecx, 0xa1b6174e
mov eax, dword [esp + 0x18]
imul eax, dword [esp + 0x2c], 0xe1d3
cmp ecx, eax
lea ecx, [esp + 0x158]
sbb eax, eax
neg eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], 0xda298b23
call fcn.0043331c
lea ecx, [esp + 0x8c]
call fcn.0043331c
lea eax, [esp + 0x30]
xorps xmm0, xmm0
push eax
movdqu xmmword [esp + 0xac], xmm0
call fcn.0046c171
push 2
lea ecx, [esp + 0x64]
mov esi, dword [eax]
mov dword [esp + 0x24], esi
call fcn.0043324a
xor eax, eax
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x18], eax
jmp 0x46ba7f
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x60]
mov dword [ecx + edx*4], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x46ba70
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], edi
jg 0x46bbce
mov dword [esp + 0x28], 0xfffffff9
mov dword [esp + 0x14], 0x9bacde9e
mov dword [esp + 0x24], 0x8b15e31
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
push 0
mov dword [esp + 0x3c], esi
mov ecx, dword [ecx + edx*4]
mov dword [edi + esi*4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
add edx, 0x3631e19e
cmp ecx, edx
mov edx, dword [esp + 0x28]
pop ecx
setle cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x24]
cmp edx, ecx
mov ecx, dword [esp + 0x24]
push 0
pop edx
setge dl
cmp edx, ecx
push 0
pop ecx
setl cl
xor edx, edx
dec ecx
cmp dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x10]
setg dl
cmp edx, ecx
push 0
pop ecx
setl cl
xor edx, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x2c], ecx
mov ecx, esi
setl dl
cmp dword [edi + ecx*4], edx
je 0x46bb43
mov ecx, dword [esp + 0x60]
cmp dword [ecx + 4], eax
je 0x46bb57
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x60]
cmp dword [ecx + edx*4], eax
je 0x46bb57
xor edi, edi
inc edi
mov ecx, edi
jmp 0x46bb5c
xor edi, edi
mov ecx, eax
inc edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], eax
jmp 0x46bbb5
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x46bb90
push eax
push 0x262e
push 0x23e
push eax
push 0x2109
push 0xdd
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
xor eax, eax
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x46bbb1
push eax
push eax
push 0xce9
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
xor eax, eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xe
jg 0x46bb66
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jle 0x46ba94
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x60]
call fcn.0043331c
mov al, byte [ebp + 0xc]
test al, al
jne 0x46bbe2
test esi, esi
jne 0x46bc2d
lea ecx, [esp + 0x180]
mov dl, al
push ecx
mov ecx, dword [esp + 0x34]
call fcn.004335bd
cmp byte [ebp + 0xc], 0
lea edi, [esp + 0xac]
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]
mov esi, dword [esp + 0x20]
je 0x46bc2d
mov ecx, dword [esp + 0xb0]
test ecx, ecx
je 0x46bc2d
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
xor eax, eax
xor edi, edi
mov dword [esp + 0x14], eax
inc edi
mov dword [esp + 0x10], 0xc25fa5fe
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x2c], 0x3251f81f
mov dword [esp + 0x14], 0x17
cmp dword [esp + 0x14], 0xd
jl 0x46bd17
mov dword [esp + 8], 0xfffffffd
mov dword [esp + 0x2c], 0xf0d602ff
mov ecx, dword [esp + 8]
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x10], eax
jne 0x46bcf3
mov ecx, dword [esp + 8]
cmp ecx, dword [esp + 0x18]
jg 0x46bc8d
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
cmp dword [esp + 0x10], ecx
jge 0x46bcd9
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x18]
imul ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
sub edx, ecx
sub edx, dword [esp + 0x14]
cmp edx, 0xfffffffd
mov edx, eax
jge 0x46bcf5
mov edx, edi
xor ecx, ecx
cmp edx, 0x4965da1f
setl cl
sub ecx, dword [esp + 0x18]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [esp + 0x2c], ecx
dec dword [esp + 0x14]
jmp 0x46bc56
test esi, esi
jne 0x46bd48
cmp dword [esp + 0xa8], eax
jle 0x46bd48
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x46bd48
call fcn.0046ac7c
mov esi, eax
lea eax, [esp + 0x30]
push eax
mov dword [esp + 0x24], esi
call fcn.0046c171
mov dword [eax], esi
xor eax, eax
mov dword [esp + 0x3c], eax
xor edx, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x14], 0x79c4185a
mov dword [esp + 0x18], 0x1860ec01
mov dword [esp + 0x28], 0x1e6e4042
mov dword [esp + 0x10], 0xfffffffa
mov dword [esp + 8], 0x2967684a
mov dword [esp + 0x24], 0x6243
mov dword [esp + 0x1c], 0x663b
mov dword [esp + 0x2c], 0xc81cf0cd
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
neg esi
cmp esi, ecx
push 0
setne dl
imul edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x18]
imul edx, edx, 6
cmp edx, ecx
pop ecx
setne cl
xor edx, edx
add ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x18]
setle dl
sub ecx, edx
jne 0x46bdec
cmp dword [esp + 0x3c], eax
je 0x46bdee
mov eax, edi
cmp eax, edi
push 0xfffffffffffffffc
sbb eax, eax
xor edx, edx
inc eax
add eax, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
add ecx, eax
mov eax, dword [esp + 0x1c]
cmp ecx, eax
pop ecx
setg dl
sub edx, dword [esp + 0x44]
mov eax, dword [esp + 0x18]
neg edx
sbb edx, edx
inc edx
sub eax, edx
neg eax
sbb eax, eax
add eax, 0xffff326c
neg eax
sbb eax, eax
inc eax
cmp ecx, eax
sbb eax, eax
xor ecx, ecx
neg eax
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x40]
cmp eax, 0x5c4ce10b
setl cl
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x10], 0xffffffff
ja 0x46be6b
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, 0xd40f
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
sub ecx, eax
sub ecx, dword [esp + 0x18]
jne 0x46be88
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x3c]
cmp eax, ecx
lea ecx, [esp + 0xa8]
setle dl
mov dword [esp + 8], edx
mov eax, dword [esp + 0x14]
add eax, 0x201f9d99
mov dword [esp + 0x2c], eax
call fcn.00434b95
mov dword [esp + 8], 0x3111738a
xor eax, eax
mov dword [esp + 0x24], 0x2377d64
mov dword [esp + 0x18], 0x711a
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x14], eax
jmp 0x46bf04
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x34], 0x720d7006
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x46bef4
cmp dword [esp + 8], eax
je 0x46bf56
mov esi, dword [esp + 8]
xor edx, edx
sub esi, dword [esp + 8]
mov ecx, dword [esp + 8]
cmp esi, ecx
setne dl
lea ecx, [edx + 0x67c28cae]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x46bf35
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x24]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x24]
jg 0x46bf58
mov edi, eax
xor ecx, ecx
cmp edi, 0xffffffff
sete cl
imul ecx, dword [esp + 0x24]
cmp ecx, dword [esp + 0x18]
jl 0x46bfdc
mov dword [esp + 0x10], 0xefe8e60a
mov dword [esp + 0x2c], 0x8a57461d
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
imul ecx, dword [esp + 8]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x10], eax
jmp 0x46bfd0
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], eax
jl 0x46bfcc
mov ecx, dword [esp + 0x18]
cmp dword [esp + ecx*4 + 0x34], eax
jne 0x46bfcc
dec dword [esp + 0x18]
jns 0x46bfbc
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe7
je 0x46bfb2
jmp 0x46c065
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x120]
mov dword [esp + 0x2c], 0xfffffffd
push 2
call fcn.0043324a
push 4
lea ecx, [esp + 0x14c]
call fcn.0043324a
xor esi, esi
mov dword [esp + 0x10], esi
jmp 0x46c022
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x120]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x46c00c
mov dword [esp + 0x10], esi
jmp 0x46c042
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x148]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x46c02f
inc dword [esp + 0x1c]
lea ecx, [esp + 0x148]
call fcn.0043331c
lea ecx, [esp + 0x120]
call fcn.0043331c
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x46c08b
mov edx, dword [esp + 0x50]
call fcn.0046add1
mov esi, eax
lea eax, [esp + 0x4c]
push eax
mov dword [esp + 0x84], esi
call fcn.0046c10f
mov dword [eax], esi
mov eax, dword [ebp + 8]
lea esi, [esp + 0x80]
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 esp, ebp
pop ebp
ret