Function at 0x4551b0
Capabilities:
Access peb ldr_data
Get ntdll base address
Hide graphical window

Disassembly:
push 0xffffffffffffffff
push 0x4eb384
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push ebp
push esi
push edi
mov eax, dword [0x512054]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
xor esi, esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x1c], esi
mov eax, dword [0x5195ac]
mov edx, dword [eax + 0xc]
mov ecx, 0x5195ac
call edx
lea ecx, [eax + 0x10]
mov eax, dword [esp + 0x38]
mov dword [eax + 4], ecx
mov dword [eax + 8], 0xffffffff
mov dword [eax + 0xc], esi
mov dword [eax], esi
mov dword [esp + 0x30], esi
mov edi, dword [esp + 0x44]
mov ecx, str.ListBk
mov eax, edi
mov dword [esp + 0x1c], 1
call fcn.00472e40
mov esi, dword [esp + 0x48]
push str.block
push eax
sub esi, 0xffffff80
push esi
mov ecx, str.img_src
call fcn.00451eb0
mov ebp, eax
mov ecx, str.ListSelBk
mov eax, edi
call fcn.00472e40
push str.block
push eax
push esi
mov ecx, str.img_src
call fcn.00451eb0
mov dword [esp + 0x18], eax
mov ecx, str.DropBtn
mov eax, edi
call fcn.00472e40
push str.block
push eax
push esi
mov ecx, str.img_src
call fcn.00451eb0
mov ebx, eax
mov ecx, str.Background
mov eax, edi
call fcn.00472e40
push str.block
push eax
push esi
mov ecx, str.img_src
call fcn.00451eb0
push 0x150
mov esi, eax
call fcn.004c99ad
add esp, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], 1
test eax, eax
je 0x4552c4
push eax
call fcn.004532a0
mov dword [esp + 0x44], eax
jmp 0x4552d0
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x44]
mov byte [esp + 0x30], 0
test ebx, ebx
je 0x4552fd
test ebp, ebp
je 0x4552fd
test esi, esi
je 0x4552fd
mov edx, dword [esp + 0x18]
mov dword [eax + 0x114], ebx
mov dword [eax + 0x118], ebp
mov dword [eax + 0x11c], edx
mov dword [eax + 0x110], esi
mov edx, dword [esp + 0x40]
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push ecx
mov dword [ecx], edx
mov ecx, esp
mov dword [ecx], 0
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 0x2c], esp
push ecx
lea esi, [eax + 0x70]
call fcn.004565c0
mov ecx, str.ITEM
mov eax, edi
call fcn.00472e40
mov ebp, eax
test ebp, ebp
je 0x455524
mov ebx, 2
lea edi, [ebp + 0x2c]
mov esi, str.text
call fcn.00474270
test eax, eax
je 0x45535b
mov eax, dword [eax + 0x18]
add eax, 8
jmp 0x45535d
xor eax, eax
push eax
lea edx, [esp + 0x24]
push edx
call fcn.00466b70
add esp, 8
mov dword [esp + 0x30], ebx
mov eax, dword [eax]
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.00406bd0
mov byte [esp + 0x30], 4
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4553a2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, str.cmdId
mov dword [esp + 0x48], 0xffffffff
call fcn.00474270
test eax, eax
je 0x4553d1
mov eax, dword [eax + 0x18]
lea ecx, [esp + 0x48]
push ecx
add eax, 8
push 0x4fc548
push eax
call fcn.004cd30b
add esp, 0xc
mov esi, str.selected
call fcn.00474270
test eax, eax
je 0x4553e7
mov eax, dword [eax + 0x18]
add eax, 8
jmp 0x4553e9
xor eax, eax
push eax
lea edx, [esp + 0x28]
push edx
call fcn.00466b70
add esp, 8
mov byte [esp + 0x30], 5
mov eax, dword [eax]
lea ecx, [esp + 0x14]
push ecx
mov ecx, eax
call fcn.00406bd0
mov byte [esp + 0x30], 7
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45542f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push str.true
push ecx
call fcn.004c9c08
add esp, 8
xor edx, edx
test eax, eax
sete dl
lea ecx, [esp + 0x18]
mov eax, edx
push eax
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x50]
call fcn.00453ab0
mov esi, str.ITEM
mov eax, ebp
call fcn.00472df0
mov esi, eax
test esi, esi
je 0x4554ce
nop
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
test eax, eax
jne 0x45555e
mov esi, dword [esi + 0x28]
test esi, esi
je 0x4554ce
jmp 0x455490
mov eax, dword [esi + 0x20]
mov ecx, str.ITEM
add eax, 8
jmp 0x4554a0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4554be
test dl, dl
je 0x4554ba
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4554be
add eax, ebx
add ecx, ebx
test dl, dl
jne 0x4554a0
xor eax, eax
jmp 0x4554c3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x455470
mov esi, dword [esi + 0x28]
test esi, esi
jne 0x455490
xor esi, esi
mov byte [esp + 0x30], 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov ebp, esi
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4554f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x30], 0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45551c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
jne 0x455342
mov esi, dword [esp + 0x44]
mov ecx, dword [esi + 0x74]
push 1
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
mov dword [eax], edx
mov dword [eax + 0xc], esi
mov dword [eax + 8], 1
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
mov esi, eax
jmp 0x4554d0