Function at 0x409f30
Capabilities:
Check if file exists
Delete file
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x556270
mov eax, dword fs:[0]
push eax
sub esp, 0x32c
mov eax, dword [0x5b627c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x130]
mov dword [ebp - 0x15c], 0
push eax
call fcn.00422620
mov ecx, eax
call fcn.004225f0
cmp dword [ebp - 0x130], 0
mov dword [ebp - 4], 0
jne 0x409fc7
mov edi, dword [ebp - 0x12c]
test edi, edi
je 0x40aeab
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x40aeab
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x40aeab
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
jmp 0x40aeab
lea eax, [ebp - 0x124]
push eax
call fcn.00458300
lea eax, [ebp - 0x128]
mov byte [ebp - 4], 1
push eax
call fcn.00457790
mov eax, dword [ebp - 0x130]
push 0
mov byte [ebp - 4], 2
push dword [eax + 0x18]
lea eax, [ebp - 0x118]
push eax
call fcn.004ff910
add esp, 0x14
push 4
push str..lnk
lea ecx, [ebp - 0x118]
mov byte [ebp - 4], 3
call fcn.0040bf10
mov eax, dword [ebp - 0x130]
push 0
push dword [eax + 0x18]
lea eax, [ebp - 0x120]
push eax
call fcn.004ff910
add esp, 0xc
push 4
push str..url
lea ecx, [ebp - 0x120]
mov byte [ebp - 4], 4
call fcn.0040bf10
mov edx, dword [ebp - 0x118]
cmp dword [edx - 4], 1
jle 0x40a067
push dword [edx - 0xc]
lea ecx, [ebp - 0x118]
call fcn.004125e0
mov edx, dword [ebp - 0x118]
sub esp, 0x18
mov ecx, edx
mov esi, esp
xor eax, eax
lea edi, [ecx + 2]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40a084
sub ecx, edi
sar ecx, 1
push ecx
push edx
mov ecx, esi
call fcn.0041c630
lea eax, [ebp - 0x28]
push eax
call fcn.00458950
add esp, 0x1c
mov ecx, dword [ebp - 0x124]
mov edx, ecx
mov byte [ebp - 4], 5
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x40a0b7
mov eax, dword [ebp - 0x14]
lea edi, [ebp - 0x28]
mov ebx, dword [ebp - 0x28]
sub edx, esi
mov esi, dword [ebp - 0x18]
sar edx, 1
cmp eax, 8
cmovae edi, ebx
cmp esi, edx
jne 0x40a21a
test esi, esi
je 0x40a108
sub edi, ecx
nop word [eax + eax]
mov ax, word [edi + ecx]
cmp ax, word [ecx]
jne 0x40a21a
add ecx, 2
sub esi, 1
jne 0x40a0f0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x15c], 1
mov byte [ebp - 4], 4
cmp eax, 8
jb 0x40a14a
lea ecx, [eax*2 + 2]
mov eax, ebx
cmp ecx, 0x1000
jb 0x40a140
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40aecd
push ecx
push ebx
call fcn.00465e7d
add esp, 8
or esi, 0xffffffff
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], eax
mov word [ebp - 0x28], ax
mov edx, dword [ebp - 0x120]
mov eax, esi
mov byte [ebp - 4], 3
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a17e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x118]
mov eax, esi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a19f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x128]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a1c0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x124]
mov eax, esi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a1e1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x12c]
test edi, edi
je 0x40aeab
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x40aeab
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x40aeab
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
jmp 0x40aeab
push dword [ebp - 0x118]
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x40a39c
push dword [ebp - 0x118]
call esi
call fcn.00474150
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x40a39c
mov ebx, dword [ebp - 0x118]
lea ecx, [ebp - 0x7c]
push 0x60
push str.d:jenkins.jenkinsworkspaceweiduangamemicrogamemicrogamebox_srcmicrogameboxinst_helper.cc
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], 0xf
mov byte [ebp - 0x7c], al
call fcn.0041c540
push 3
push 0x56bab4
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 6
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
call fcn.0041c540
mov byte [ebp - 4], 7
call fcn.00474150
mov edi, eax
lea ecx, [ebp - 0x208]
push 0x28e
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004066e0
mov esi, eax
push str.InstallHelper::AddDeskIcon_delete_desk_lnk:
push esi
mov byte [ebp - 4], 8
call fcn.00407a90
test ebx, ebx
mov ecx, 0x56ba88
cmovne ecx, ebx
push ecx
push esi
call fcn.00405390
mov eax, dword [edi]
add esp, 0x10
mov ecx, edi
push esi
call dword [eax + 0x1c]
lea ecx, [ebp - 0x208]
call fcn.00407f30
mov edx, dword [ebp - 0x50]
mov byte [ebp - 4], 6
cmp edx, 0x10
jb 0x40a334
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a32a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40aed2
push edx
push ecx
call fcn.00465e7d
add esp, 8
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
mov byte [ebp - 4], 5
cmp edx, 0x10
jb 0x40a37e
mov ecx, dword [ebp - 0x7c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a374
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40aed7
push edx
push ecx
call fcn.00465e7d
add esp, 8
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xf
mov byte [ebp - 0x7c], 0
push dword [ebp - 0x120]
call ebx
test eax, eax
je 0x40a53f
push dword [ebp - 0x120]
call esi
call fcn.00474150
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x40a53f
mov ebx, dword [ebp - 0x120]
lea ecx, [ebp - 0xac]
push 0x60
push str.d:jenkins.jenkinsworkspaceweiduangamemicrogamemicrogamebox_srcmicrogameboxinst_helper.cc
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], 0xf
mov byte [ebp - 0xac], al
call fcn.0041c540
push 3
push 0x56bab4
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 9
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
call fcn.0041c540
mov byte [ebp - 4], 0xa
call fcn.00474150
mov edi, eax
lea ecx, [ebp - 0x2a0]
push 0x294
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x94]
push eax
call fcn.004066e0
mov esi, eax
push str.InstallHelper::AddDeskIcon_delete_desk_lnk:
push esi
mov byte [ebp - 4], 0xb
call fcn.00407a90
test ebx, ebx
mov eax, 0x56ba88
cmovne eax, ebx
push eax
push esi
call fcn.00405390
mov eax, dword [edi]
add esp, 0x10
mov ecx, edi
push esi
call dword [eax + 0x1c]
lea ecx, [ebp - 0x2a0]
call fcn.00407f30
mov edx, dword [ebp - 0x80]
mov byte [ebp - 4], 9
cmp edx, 0x10
jb 0x40a4c8
mov ecx, dword [ebp - 0x94]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a4be
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40aedc
push edx
push ecx
call fcn.00465e7d
add esp, 8
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
mov byte [ebp - 4], 5
cmp edx, 0x10
jb 0x40a51e
mov ecx, dword [ebp - 0xac]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a514
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40aee1
push edx
push ecx
call fcn.00465e7d
add esp, 8
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0xf
mov byte [ebp - 0xac], 0
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + 0x54]
sub eax, 0x10
push eax
call fcn.0040c650
add esp, 4
lea esi, [eax + 0x10]
mov dword [ebp - 0x158], esi
cmp dword [esi - 0xc], 0
mov byte [ebp - 4], 0xc
jne 0x40a5cc
lea edx, [esi - 0x10]
mov byte [ebp - 4], 5
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a585
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 4
cmp edx, 8
jb 0x40a14d
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40a5bd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40aee6
push edx
push ecx
call fcn.00465e7d
add esp, 8
jmp 0x40a14d
push dword [ebp - 0x124]
call ebx
test eax, eax
jne 0x40a603
lea edx, [esi - 0x10]
or esi, 0xffffffff
mov eax, esi
mov byte [ebp - 4], 5
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a5f6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x28]
call fcn.004070f0
jmp 0x40a15d
mov eax, 0x81d0
mov ecx, 0x8191
mov word [ebp - 0x4c], ax
xor edi, edi
mov eax, 0x81d8
mov word [ebp - 0x4a], ax
mov eax, 0x819e
mov word [ebp - 0x48], ax
mov eax, 0x8180
mov word [ebp - 0x46], ax
lea edx, [edi + 0xf]
mov eax, 0x8197
mov word [ebp - 0x44], ax
mov eax, 0x81c9
mov word [ebp - 0x42], cx
mov word [ebp - 0x40], ax
mov eax, 0x819d
mov word [ebp - 0x3e], ax
mov eax, 0x827d
mov word [ebp - 0x3c], cx
mov word [ebp - 0x3a], ax
mov eax, 0x826f
mov word [ebp - 0x38], ax
mov eax, 0x825c
mov word [ebp - 0x36], ax
mov eax, 0x8269
mov word [ebp - 0x34], ax
mov eax, 0x826a
mov word [ebp - 0x32], ax
mov eax, 0x826b
mov word [ebp - 0x30], ax
mov eax, 0x8265
mov word [ebp - 0x2e], ax
mov eax, 0x8200
mov word [ebp - 0x2c], ax
mov ax, word [ebp - 0x4c]
mov ax, word [ebp + edi*2 - 0x4c]
mov ecx, edi
and ecx, 0xf
movzx esi, ax
cmp ecx, 0xf
mov eax, 0x790381f7
cmovae ecx, edx
mov edx, 0xd1d315eb
shl ecx, 2
call fcn.00466140
mov cx, ax
mov edx, 0xf
and cx, 0xf
lea eax, [edi - 0x7e09]
xor cx, ax
xor cx, si
mov word [ebp + edi*2 - 0x4c], cx
inc edi
cmp edi, 0x11
jb 0x40a6a0
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x150]
call fcn.00406260
mov eax, dword [ebp - 0x130]
mov byte [ebp - 4], 0xd
mov eax, dword [eax + 0x30]
sub eax, 0x10
push eax
call fcn.0040c650
add esp, 4
lea edi, [eax + 0x10]
mov dword [ebp - 0x170], edi
push edi
mov byte [ebp - 4], 0xe
call ebx
or ebx, 0xffffffff
test eax, eax
jne 0x40a9e7
movaps xmm0, xmmword [0x56cad0]
lea ecx, [ebp - 0x13c]
push dword [ebp - 0x170]
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0xdc]
movups xmmword [ebp - 0x114], xmm0
push eax
movaps xmm0, xmmword [0x56cae0]
lea eax, [ebp - 0x114]
movups xmmword [ebp - 0x104], xmm0
push eax
movaps xmm0, xmmword [0x56caf0]
movups xmmword [ebp - 0xf4], xmm0
mov dword [ebp - 0xe0], 0x100
call fcn.00405b40
mov byte [ebp - 4], 0xf
call fcn.00414250
mov ecx, eax
test ecx, ecx
je 0x40aeeb
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x130]
mov byte [ebp - 4], 0x10
push dword [eax + 0x14]
lea eax, [ebp - 0x140]
push dword [ebp - 0x128]
push str._s_s.ico
push eax
call fcn.00412720
mov esi, dword [ebp - 0x140]
add esp, 0x10
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40a7f6
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x13c]
mov ecx, eax
mov dword [ebp - 0x16c], eax
cmp ecx, dword [ebp - 0x138]
je 0x40a846
mov esi, eax
nop
mov eax, dword [esi + 4]
push 0
push eax
push eax
push 1
push 0x191
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [esi], eax
add esi, 8
cmp esi, dword [ebp - 0x138]
jne 0x40a810
mov esi, dword [ebp - 0x140]
mov eax, dword [ebp - 0x13c]
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x168], ecx
mov dword [ebp - 0x164], ecx
mov dword [ebp - 0x160], edx
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x11c], eax
cmp eax, dword [ebp - 0x138]
je 0x40ab38
mov esi, eax
mov eax, dword [esi]
mov dword [ebp - 0x11c], eax
test eax, eax
je 0x40a8b0
cmp edx, ecx
je 0x40a891
mov dword [ecx], eax
add ecx, 4
mov dword [ebp - 0x164], ecx
jmp 0x40a8b0
lea eax, [ebp - 0x11c]
push eax
push ecx
lea ecx, [ebp - 0x168]
call fcn.004056a0
mov edx, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x164]
add esi, 8
cmp esi, dword [ebp - 0x138]
jne 0x40a874
mov eax, dword [ebp - 0x168]
mov esi, dword [ebp - 0x140]
mov dword [ebp - 0x11c], edx
mov dword [ebp - 0x154], eax
cmp eax, ecx
je 0x40ab3a
sub ecx, eax
sar ecx, 2
push esi
push ecx
push eax
call fcn.0045b470
add esp, 0xc
test eax, eax
jne 0x40a971
lea ecx, [ebp - 0x168]
call fcn.004072b0
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0xf
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a91c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x13c]
call fcn.00407310
mov byte [ebp - 4], 0xd
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x40a942
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x150]
mov eax, esi
mov byte [ebp - 4], 0xc
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a963
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x158]
add edx, 0xfffffff0
jmp 0x40a5de
mov eax, dword [ebp - 0x13c]
mov ecx, dword [eax]
test ecx, ecx
je 0x40a98a
push ecx
call dword [sym.imp.USER32.dll_DestroyIcon]
mov eax, dword [ebp - 0x16c]
add eax, 8
mov dword [ebp - 0x16c], eax
cmp eax, dword [ebp - 0x138]
jne 0x40a977
mov ecx, dword [ebp - 0x154]
test ecx, ecx
je 0x40a9bd
mov eax, dword [ebp - 0x11c]
sub eax, ecx
sar eax, 2
push eax
push ecx
lea ecx, [ebp - 0x168]
call fcn.0041c7c0
mov byte [ebp - 4], 0xf
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40a9d8
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x13c]
mov byte [ebp - 4], 0xe
call fcn.00407310
mov esi, dword [ebp - 0x158]
push 0
push edi
push dword [ebp - 0x118]
push dword [ebp - 0x150]
push dword [ebp - 0x124]
push esi
call fcn.0040cbc0
add esp, 0x18
test eax, eax
jne 0x40aaff
call fcn.00474150
mov ecx, eax
push 2
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x40aaff
push 0x60
push str.d:jenkins.jenkinsworkspaceweiduangamemicrogamemicrogamebox_srcmicrogameboxinst_helper.cc
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], 0xf
mov byte [ebp - 0xdc], al
call fcn.0041c540
push 3
push 0x56bba4
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0x12
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0xf
mov byte [ebp - 0xc4], 0
call fcn.0041c540
mov byte [ebp - 4], 0x13
call fcn.00474150
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x338]
push 0x2d2
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.004066e0
mov ebx, eax
push str.InstallHelper::AddDeskIcon_FAILED
push ebx
mov byte [ebp - 4], 0x14
call fcn.00407a90
mov eax, dword [ebp - 0x11c]
add esp, 8
mov ecx, eax
mov edx, dword [eax]
push ebx
call dword [edx + 0x1c]
lea ecx, [ebp - 0x338]
call fcn.00407f30
lea ecx, [ebp - 0xc4]
call fcn.004070a0
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 0xe
call fcn.004070a0
or ebx, 0xffffffff
push 0
push 0x2a
push 0x1a
push 0xffff
call dword [sym.imp.USER32.dll_PostMessageW]
push 0
push 0
push 0x1000
push 0x8000000
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
call fcn.00414250
mov ecx, eax
test ecx, ecx
je 0x40aef5
jmp 0x40ac3f
xor eax, eax
mov byte [ebp - 4], 0x10
test eax, eax
je 0x40ab7b
sub edx, eax
mov ecx, eax
and edx, 0xfffffffc
cmp edx, 0x1000
jb 0x40ab71
mov eax, dword [eax - 4]
add edx, 0x23
sub ecx, eax
mov dword [ebp - 0x154], eax
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x40aecd
mov eax, dword [ebp - 0x154]
push edx
push eax
call fcn.00465e7d
add esp, 8
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0xf
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ab99
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x13c]
mov byte [ebp - 4], 0xe
test ecx, ecx
je 0x40abe1
mov eax, dword [ebp - 0x134]
sub eax, ecx
sar eax, 3
lea edx, [eax*8]
mov eax, ecx
cmp edx, 0x1000
jb 0x40abd7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40aeff
push edx
push ecx
call fcn.00465e7d
add esp, 8
mov byte [ebp - 4], 0xd
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x40abfc
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x150]
mov eax, esi
mov byte [ebp - 4], 0xc
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ac1d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x158]
mov eax, esi
mov byte [ebp - 4], 5
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a585
jmp 0x40a57d
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14c], eax
push 0x569bb8
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x15
call fcn.0040c160
test al, al
jne 0x40ac77
push 0
push 0x569bb8
lea ecx, [ebp - 0x14c]
call fcn.0041a8f0
mov byte [ebp - 4], 0x16
call fcn.00414250
mov ecx, eax
test ecx, ecx
je 0x40af04
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x148], eax
push 0x569bb8
lea ecx, [ebp - 0x148]
mov byte [ebp - 4], 0x17
call fcn.0040c160
test al, al
jne 0x40acc2
push 0
push 0x569bb8
lea ecx, [ebp - 0x148]
call fcn.0041a8f0
mov byte [ebp - 4], 0x18
call fcn.00414250
mov ecx, eax
test ecx, ecx
je 0x40af0e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x144], eax
push str.add_desk_icon
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0x19
call fcn.0040c160
test al, al
jne 0x40ad0d
push 0xd
push str.add_desk_icon
lea ecx, [ebp - 0x144]
call fcn.0041a8f0
mov byte [ebp - 4], 0x1a
call fcn.00453ec0
lea ecx, [ebp - 0x14c]
push ecx
lea ecx, [ebp - 0x148]
mov edx, dword [eax]
push ecx
push 1
lea ecx, [ebp - 0x144]
push ecx
mov ecx, eax
call dword [edx]
mov edx, dword [ebp - 0x144]
mov eax, ebx
mov byte [ebp - 4], 0x18
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ad54
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x148]
mov eax, ebx
mov byte [ebp - 4], 0x16
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ad75
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14c]
mov eax, ebx
mov byte [ebp - 4], 0xe
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ad96
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x15c], 1
add edi, 0xfffffff0
mov byte [ebp - 4], 0xd
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x40adbb
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x150]
mov eax, ebx
mov byte [ebp - 4], 0xc
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40addc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40adf7
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x28]
call fcn.004070f0
mov edx, dword [ebp - 0x120]
mov eax, ebx
mov byte [ebp - 4], 3
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ae20
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x118]
mov eax, ebx
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ae41
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x128]
mov eax, ebx
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ae62
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x124]
mov eax, ebx
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ae83
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x12c]
test esi, esi
je 0x40aeab
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x40aeab
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebx
dec ebx
jne 0x40aeab
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
mov eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00465d1b
mov esp, ebp
pop ebp
ret
call fcn.005143e9
call fcn.005143e9
call fcn.005143e9
call fcn.005143e9
call fcn.005143e9
call fcn.005143e9
push 0x80004005
call fcn.0040c140
push 0x80004005
call fcn.0040c140
call fcn.005143e9
push 0x80004005
call fcn.0040c140
push 0x80004005
call fcn.0040c140
int3