Function at 0x431090
Capabilities:
Create process on windows
Delete directory
Delete file
Get common file path
Hide graphical window
Set file attributes

Disassembly:
mov eax, dword [0x483978]
sub esp, 0x2a8
mov ecx, dword [eax - 0xc]
push ebx
push ebp
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
test ecx, ecx
jl 0x4310b8
mov dword [esp + 0x24], eax
add eax, 0xfffffff4
push eax
call edi
jmp 0x4310cc
mov ecx, dword [0x46b21c]
push eax
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x28]
call fcn.00402e60
mov edx, dword [0x46b21c]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov eax, 0x46c140
mov dword [esp + 0x10], edx
test eax, eax
jne 0x4310e9
xor eax, eax
jmp 0x4310f0
push 0x46c140
call ebx
push 0x46c140
push eax
mov eax, dword [0x4838e0]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x20]
call fcn.00401eb0
lea edx, [esp + 0x10]
lea ecx, [esp + 0x18]
push edx
call fcn.00429290
lea ecx, [esp + 0x10]
call fcn.00401e80
mov eax, dword [0x46b21c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
push eax
mov ecx, dword [eax - 8]
mov eax, dword [esp + 0x1c]
push ecx
push eax
mov edx, dword [eax - 8]
lea ecx, [esp + 0x20]
push edx
call fcn.00401eb0
lea eax, [esp + 0x14]
lea ecx, [esp + 0x1c]
push eax
call fcn.00429290
lea ecx, [esp + 0x14]
call fcn.00401e80
mov ecx, dword [0x46b21c]
mov edx, str._Uninstall.ini
test edx, edx
mov dword [esp + 0x20], ecx
jne 0x431172
xor eax, eax
jmp 0x431179
push str._Uninstall.ini
call ebx
push str._Uninstall.ini
push eax
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x28]
push eax
mov eax, dword [eax - 8]
push eax
call fcn.00401eb0
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x38]
call fcn.00429290
lea ecx, [esp + 0x20]
call fcn.00401e80
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x46b220]
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4311d9
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x4311d9
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff4
push eax
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x18]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x431204
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x431204
mov edx, dword [esp + 0x18]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
lea eax, [esp + 0x44]
push eax
call fcn.0041c900
mov ecx, dword [0x46b21c]
mov edx, 0x46c140
add esp, 4
mov dword [esp + 0x18], ecx
test edx, edx
jne 0x431228
xor eax, eax
jmp 0x43122f
push 0x46c140
call ebx
push 0x46c140
push eax
mov eax, dword [0x4838e0]
lea ecx, [esp + 0x20]
push eax
mov eax, dword [eax - 8]
push eax
call fcn.00401eb0
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x18]
call fcn.00429290
lea ecx, [esp + 0x18]
call fcn.00401e80
mov edx, dword [0x46b21c]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
push eax
mov eax, dword [eax - 8]
push eax
mov eax, dword [esp + 0x1c]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00401eb0
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x10]
push edx
call fcn.00429290
lea ecx, [esp + 0x1c]
call fcn.00401e80
mov eax, dword [0x46b21c]
mov ecx, str..ini
test ecx, ecx
mov dword [esp + 0x20], eax
jne 0x4312b1
xor eax, eax
jmp 0x4312b8
push str..ini
call ebx
push str..ini
push eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x28]
push eax
mov edx, dword [eax - 8]
push edx
call fcn.00401eb0
lea eax, [esp + 0x20]
lea ecx, [esp + 0x40]
push eax
call fcn.00429290
lea ecx, [esp + 0x20]
call fcn.00401e80
mov eax, dword [esp + 0x10]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x431312
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x431312
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x14]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x43133d
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x43133d
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [0x46b21c]
mov ecx, 0x46c140
test ecx, ecx
mov dword [esp + 0x18], eax
jne 0x431353
xor eax, eax
jmp 0x43135a
push 0x46c140
call ebx
push 0x46c140
push eax
mov eax, dword [0x4838e0]
lea ecx, [esp + 0x20]
push eax
mov edx, dword [eax - 8]
push edx
call fcn.00401eb0
lea eax, [esp + 0x18]
lea ecx, [esp + 0x14]
push eax
call fcn.00429290
lea ecx, [esp + 0x18]
call fcn.00401e80
mov ecx, dword [0x46b21c]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
push eax
mov edx, dword [eax - 8]
mov eax, dword [esp + 0x18]
push edx
push eax
mov eax, dword [eax - 8]
lea ecx, [esp + 0x28]
push eax
call fcn.00401eb0
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x14]
call fcn.00429290
lea ecx, [esp + 0x1c]
call fcn.00401e80
mov edx, dword [0x46b21c]
mov eax, str..exe
test eax, eax
mov dword [esp + 0x20], edx
je 0x4313e0
push str..exe
call ebx
push str..exe
push eax
mov eax, dword [esp + 0x18]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x30]
call fcn.00401eb0
lea edx, [esp + 0x20]
lea ecx, [esp + 0x30]
push edx
call fcn.00429290
lea ecx, [esp + 0x20]
call fcn.00401e80
mov eax, dword [esp + 0x10]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x43143a
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x43143a
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x14]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x431465
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x431465
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [0x4838e0]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jl 0x43147d
mov dword [esp + 0x38], eax
add eax, 0xfffffff4
push eax
call edi
jmp 0x431491
mov ecx, dword [0x46b21c]
push eax
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x3c]
call fcn.00402e60
mov edx, dword [esp + 0x30]
push 0x80
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [esp + 0x30]
push 0
push 0x80
push 4
push 0
push 1
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x431ba1
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x4ab7a0]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
je 0x431520
mov edx, dword [eax - 0xc]
test edx, edx
jge 0x4314ef
mov edx, dword [0x46b220]
add eax, 0xfffffff4
cmp eax, edx
jne 0x4314f6
mov eax, dword [ecx - 0xc]
test eax, eax
jge 0x431507
push ecx
mov ecx, dword [ecx - 8]
push ecx
mov ecx, 0x4ab7a0
call fcn.004027f0
jmp 0x431520
mov ecx, 0x4ab7a0
call fcn.00402690
mov eax, dword [esp + 0x34]
mov dword [0x4ab7a0], eax
add eax, 0xfffffff4
push eax
call edi
push 0xffffffffffffffff
push str.for_all_install
call fcn.0041dd60
mov ebp, eax
add esp, 8
cmp ebp, 0xffffffff
jne 0x431684
push 0xde
call fcn.00434070
mov edx, dword [0x46b21c]
mov esi, eax
add esp, 4
mov dword [esp + 0x14], edx
test esi, esi
je 0x43159a
shr eax, 0x10
jne 0x43156e
and esi, 0xffff
lea ecx, [esp + 0x14]
push esi
call fcn.00402fe0
jmp 0x43159a
push esi
call ebx
mov edi, eax
test edi, edi
je 0x43159a
push edi
lea ecx, [esp + 0x18]
call fcn.00401ce0
test eax, eax
je 0x43159a
lea ecx, [edi + edi]
mov edi, dword [esp + 0x14]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x46b21c]
mov ecx, 0x46c148
test ecx, ecx
mov dword [esp + 0x18], eax
jne 0x4315b0
xor eax, eax
jmp 0x4315b7
push 0x46c148
call ebx
mov ecx, dword [esp + 0x34]
push ecx
mov edx, dword [ecx - 8]
lea ecx, [esp + 0x1c]
push edx
push 0x46c148
push eax
call fcn.00401eb0
lea eax, [esp + 0x18]
lea ecx, [esp + 0x1c]
push eax
call fcn.00429290
lea ecx, [esp + 0x18]
call fcn.00401e80
mov eax, dword [esp + 0x1c]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004026d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x46b220]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x431627
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x431627
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff4
push eax
call fcn.00459de2
add esp, 4
mov ecx, dword [esp + 0x14]
push 0
push 0
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x14]
call fcn.00401e80
lea ecx, [esp + 0x38]
call fcn.00401e80
lea ecx, [esp + 0x30]
call fcn.00401e80
lea ecx, [esp + 0x40]
call fcn.00401e80
lea ecx, [esp + 0x44]
call fcn.00401e80
lea ecx, [esp + 0x34]
call fcn.00401e80
lea ecx, [esp + 0x24]
call fcn.00401e80
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2a8
ret
push 0
push str.portable_install
call fcn.0041dd60
push 0
push str.admin_install
mov ebx, eax
call fcn.0041dd60
mov ecx, 6
xor eax, eax
lea edi, [esp + 0x88]
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 2
mov dword [esp + 0x80], 0x1a
mov dword [esp + 0x84], 0xb
add esp, 0x10
rep stosd dword es:[edi], eax
mov ecx, 6
lea edi, [esp + 0xa0]
mov dword [esp + 0x90], 0x19
mov dword [esp + 0x94], 0x17
mov dword [esp + 0x98], 0x16
mov dword [esp + 0x9c], 0x23
test ebp, ebp
rep stosd dword es:[edi], eax
lea esi, [esp + 0x68]
je 0x431720
lea esi, [esp + 0x90]
mov edx, dword [esi]
mov eax, dword [0x46b21c]
push 0
push edx
push 0x400
lea ecx, [esp + 0x5c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], eax
call fcn.00402f30
mov edi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push eax
push 0
call edi
push 0xffffffffffffffff
lea ecx, [esp + 0x54]
call fcn.00401f50
mov eax, dword [esi + 4]
push 0
push eax
push 0x400
lea ecx, [esp + 0x58]
call fcn.00402f30
push eax
push 0
call edi
push 0xffffffffffffffff
lea ecx, [esp + 0x50]
call fcn.00401f50
mov ecx, dword [esi + 8]
push 0
push ecx
push 0x400
lea ecx, [esp + 0x54]
call fcn.00402f30
push eax
push 0
call edi
push 0xffffffffffffffff
lea ecx, [esp + 0x4c]
call fcn.00401f50
mov edx, dword [esi + 0xc]
push 0
push edx
push 0x400
lea ecx, [esp + 0x64]
call fcn.00402f30
push eax
push 0
call edi
push 0xffffffffffffffff
lea ecx, [esp + 0x5c]
call fcn.00401f50
push str._s_s.lnk
lea ecx, [esp + 0x40]
call fcn.004028d0
mov eax, dword [0x483978]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x3c]
push eax
push ecx
lea eax, [esp + 0x34]
push edx
push eax
call fcn.004036a0
mov ecx, dword [esp + 0x3c]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
add esp, 0x10
push ecx
call esi
mov edx, dword [0x483978]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
push edx
push eax
lea edx, [esp + 0x34]
push ecx
push edx
call fcn.004036a0
mov eax, dword [esp + 0x3c]
add esp, 0x10
push eax
call esi
mov edi, dword [esp + 0x3c]
lea ecx, [esp + 0x24]
push str._Uninstall
lea edx, [esp + 0x2c]
push ecx
push edx
call fcn.00403460
mov eax, dword [eax]
mov ecx, dword [0x4838e0]
push eax
push ecx
lea edx, [esp + 0x34]
push edi
push edx
call fcn.004036a0
add esp, 0x10
lea ecx, [esp + 0x28]
call fcn.00401e80
mov eax, dword [esp + 0x2c]
push eax
call esi
mov ecx, dword [esp + 0x34]
push ecx
call esi
mov edx, dword [esp + 0x40]
push edx
call esi
mov eax, dword [esp + 0x30]
push eax
call esi
mov ecx, dword [esp + 0x38]
mov edi, dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
push ecx
call edi
test ebx, ebx
jne 0x431ad1
lea edx, [esp + 0x24]
lea eax, [esp + 0x4c]
push edx
push 0x46c140
lea ecx, [esp + 0x30]
push eax
push ecx
call fcn.00403460
lea edx, [esp + 0x14]
push eax
push edx
call fcn.00402d10
lea ecx, [esp + 0x28]
call fcn.00401e80
mov eax, dword [esp + 0x10]
push eax
call edi
mov ecx, dword [0x483978]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
push ecx
push edx
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.004036a0
mov edx, dword [esp + 0x3c]
add esp, 0x10
push edx
call esi
xor eax, eax
test ebp, ebp
setne al
push eax
call fcn.004304a0
mov ecx, dword [esp + 0x14]
add esp, 4
push ecx
call edi
lea ecx, [esp + 0x10]
call fcn.00401e80
mov ecx, dword [esp + 0x24]
push ebx
push ecx
call fcn.00457790
add esp, 8
test ebp, ebp
je 0x43192f
mov edx, dword [esp + 0x24]
push 1
push edx
call fcn.00457790
add esp, 8
mov eax, dword [esp + 0x2bc]
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push str.Microsoft
lea ecx, [esp + 0x58]
call fcn.00402a90
push str.Freeware
lea ecx, [esp + 0x58]
call fcn.00402bd0
push 0x46c614
lea ecx, [esp + 0x1c]
call fcn.00402a90
push str._seite
lea ecx, [esp + 0x2c]
call fcn.00402a90
push 0x46b53c
lea ecx, [esp + 0x68]
call fcn.00402a90
push eax
lea ecx, [esp + 0x1c]
push 0x483978
lea edx, [esp + 0x5c]
push ecx
lea eax, [esp + 0x34]
push edx
lea ecx, [esp + 0x70]
push eax
push ecx
call fcn.00410d40
add esp, 4
lea edx, [esp + 0x28]
push eax
push edx
call fcn.00402d10
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00402d10
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.00402d10
lea edx, [esp + 0x24]
push eax
push edx
call fcn.00402d10
push eax
lea eax, [esp + 0x64]
push eax
call fcn.00402d10
lea ecx, [esp + 0x1c]
call fcn.00401e80
lea ecx, [esp + 0x20]
call fcn.00401e80
lea ecx, [esp + 0x10]
call fcn.00401e80
lea ecx, [esp + 0x14]
call fcn.00401e80
lea ecx, [esp + 0x60]
call fcn.00401e80
lea ecx, [esp + 0x64]
call fcn.00401e80
lea ecx, [esp + 0x28]
call fcn.00401e80
lea ecx, [esp + 0x18]
call fcn.00401e80
call fcn.0042c2a0
test eax, eax
je 0x431af6
lea ecx, [esp + 0xb8]
push ecx
push 0xff
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea edx, [esp + 0xb8]
lea ecx, [esp + 0x10]
push edx
call fcn.004028d0
lea eax, [esp + 0x10]
push eax
call fcn.0042bc20
add esp, 4
lea ecx, [esp + 0x28]
push str.softwareok_tmp_link.url
call fcn.00402a90
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x14]
call fcn.004035b0
lea ecx, [esp + 0x28]
call fcn.00401e80
push ecx
lea edx, [esp + 0x60]
mov ecx, esp
push edx
call fcn.00429290
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
push eax
call fcn.00429290
call fcn.0042bd60
mov ecx, dword [esp + 0x18]
add esp, 8
push 3
push 0
push ecx
push 0x46b508
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [esp + 0x10]
call fcn.00401e80
jmp 0x431b0e
mov edx, dword [0x483978]
push 0
push edx
call fcn.00457810
add esp, 8
test eax, eax
je 0x43192f
mov eax, dword [esp + 0x24]
push 0
push eax
jmp 0x431927
mov edx, dword [esp + 0x5c]
push 3
push 0
push 0
push edx
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
call fcn.00431f10
lea ecx, [esp + 0x5c]
call fcn.00401e80
lea ecx, [esp + 0x54]
call fcn.00401e80
lea ecx, [esp + 0x3c]
call fcn.00401e80
lea ecx, [esp + 0x50]
call fcn.00401e80
lea ecx, [esp + 0x48]
call fcn.00401e80
lea ecx, [esp + 0x58]
call fcn.00401e80
lea ecx, [esp + 0x4c]
call fcn.00401e80
lea ecx, [esp + 0x2c]
call fcn.00401e80
lea ecx, [esp + 0x38]
call fcn.00401e80
lea ecx, [esp + 0x30]
call fcn.00401e80
lea ecx, [esp + 0x40]
call fcn.00401e80
lea ecx, [esp + 0x44]
call fcn.00401e80
lea ecx, [esp + 0x34]
call fcn.00401e80
lea ecx, [esp + 0x24]
call fcn.00401e80
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2a8
ret
push 0xde
call fcn.00434070
mov esi, eax
mov eax, dword [0x46b21c]
add esp, 4
mov dword [esp + 0x14], eax
test esi, esi
je 0x431c02
mov ecx, esi
shr ecx, 0x10
jne 0x431bd6
and esi, 0xffff
lea ecx, [esp + 0x14]
push esi
call fcn.00402fe0
jmp 0x431c02
push esi
call ebx
mov edi, eax
test edi, edi
je 0x431c02
push edi
lea ecx, [esp + 0x18]
call fcn.00401ce0
test eax, eax
je 0x431c02
lea ecx, [edi + edi]
mov edi, dword [esp + 0x14]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x46b21c]
mov ecx, 0x46de64
test ecx, ecx
mov dword [esp + 0x10], eax
je 0x431c4e
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test esi, esi
je 0x431c4e
push esi
lea ecx, [esp + 0x14]
call fcn.00401ce0
test eax, eax
je 0x431c4e
mov edx, dword [esp + 0x10]
inc esi
push esi
push 0x46de64
push edx
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x10]
push 0xffffffffffffffff
call fcn.00401f50
mov eax, dword [0x46b21c]
mov ecx, str.:_r_n
test ecx, ecx
mov dword [esp + 0x18], eax
jne 0x431c64
xor eax, eax
jmp 0x431c6b
push str.:_r_n
call ebx
mov ecx, dword [esp + 0x30]
push ecx
mov edx, dword [ecx - 8]
lea ecx, [esp + 0x1c]
push edx
push str.:_r_n
push eax
call fcn.00401eb0
lea eax, [esp + 0x18]
lea ecx, [esp + 0x28]
push eax
call fcn.00429290
lea ecx, [esp + 0x18]
call fcn.00401e80
mov ecx, dword [0x46b21c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
push eax
mov edx, dword [eax - 8]
mov eax, dword [esp + 0x2c]
push edx
push eax
mov eax, dword [eax - 8]
lea ecx, [esp + 0x28]
push eax
call fcn.00401eb0
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x24]
call fcn.00429290
lea ecx, [esp + 0x1c]
call fcn.00401e80
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x14]
push eax
mov edx, dword [eax - 8]
push edx
call fcn.004026d0
mov eax, dword [esp + 0x20]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x431d1b
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x431d21
mov edx, dword [esp + 0x20]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
jmp 0x431d21
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov eax, dword [esp + 0x28]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x431d4c
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x431d4c
mov edx, dword [esp + 0x28]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x431d77
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x431d77
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, str._r_n_r_n
test eax, eax
je 0x431d87
push str._r_n_r_n
call ebx
push str._r_n_r_n
push eax
lea ecx, [esp + 0x1c]
call fcn.004026d0
push 0xdd
call fcn.00434070
mov esi, eax
add esp, 4
test esi, esi
je 0x431dac
push esi
call ebx
push esi
push eax
lea ecx, [esp + 0x1c]
call fcn.004026d0
mov ecx, dword [esp + 0x14]
push 0
push 0
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.004084c0
mov eax, dword [esp + 0x14]
mov ecx, dword [0x46b220]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x431df8
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x431df8
mov eax, dword [esp + 0x14]
add eax, 0xfffffff4
push eax
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x38]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x431e23
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x431e23
mov edx, dword [esp + 0x38]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x30]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x431e4e
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x431e4e
mov edx, dword [esp + 0x30]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x40]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x431e79
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x431e79
mov edx, dword [esp + 0x40]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x44]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x431ea4
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x431ea4
mov edx, dword [esp + 0x44]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x34]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x431ecf
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x431ecf
mov edx, dword [esp + 0x34]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x24]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x431efa
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x431efa
mov edx, dword [esp + 0x24]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2a8
ret