Function at 0x4ce950
Capabilities:
Hide graphical window
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x3c0
mov eax, dword [0x596f48]
xor eax, esp
mov dword [esp + 0x3bc], eax
push ebx
mov ebx, dword [esp + 0x3cc]
push ebp
mov ebp, dword [esp + 0x3cc]
push esi
push edi
push ebx
push ebp
push str.ui_create__p__p_n
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x60], ebx
call fcn.0048f0a0
add esp, 0xc
cmp byte [0x597e92], 0
je 0x4ce9d1
test ebp, ebp
jne 0x4ce9d1
mov esi, dword [0x59828c]
test esi, esi
je 0x4ce9d1
mov edi, dword [sym.imp.USER32.dll_IsWindowVisible]
lea ebx, [ebx]
cmp dword [esi + 0x12c], 0
je 0x4ce9c7
mov eax, dword [esi + 0x60]
push eax
call edi
test eax, eax
je 0x4ceb68
mov esi, dword [esi + 0x124]
test esi, esi
jne 0x4ce9b0
lea edx, [esp + 0x2bc]
push edx
call fcn.00522730
lea eax, [esp + 0x1ac]
push eax
call fcn.00522730
mov eax, 1
push 0x480
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x28], eax
call fcn.004a3fd0
push 0x480
mov esi, eax
push 0
push esi
call fcn.00549090
mov eax, dword [0x59828c]
add esp, 0xc
test eax, eax
je 0x4cea27
mov dword [eax + 0x128], esi
cmp dword [0x598290], 0
mov dword [esi + 0x124], eax
mov dword [esi + 0x128], 0
mov dword [0x59828c], esi
jne 0x4cea4c
mov dword [0x598290], esi
or edi, 0xffffffff
lea ecx, [esi + 0x3b8]
push ecx
mov dword [esi + 0x2ec], edi
mov dword [esi + 0x2f0], edi
mov dword [esi + 0x16c], edi
mov dword [esi + 0x170], edi
mov dword [esi + 0x174], edi
mov dword [esi + 0x294], edi
mov dword [esi + 0x290], 1
mov dword [esi + 0x2e8], edi
mov dword [esi + 0x11c], edi
mov dword [esi + 0x1b4], 0
mov dword [esi + 0x1bc], 0x570e20
mov dword [esi + 0x1b8], esi
mov dword [esi + 0x36c], edi
mov dword [esi + 0x370], edi
mov dword [esi + 0x1b0], edi
mov dword [esi + 0x374], edi
mov dword [esi + 0xe0], edi
mov dword [esi + 0xe4], edi
call fcn.004bdc00
lea edx, [esi + 0x3a0]
push edx
call fcn.004b4990
test ebp, ebp
mov eax, edi
mov dword [esi + 0x25c], eax
mov dword [esi + 0x260], eax
mov dword [esi + 0x264], eax
mov dword [esi + 0x268], eax
mov dword [esi + 0x26c], eax
mov dword [esi + 0x270], eax
mov dword [esi + 0x274], eax
mov dword [esi + 0x278], eax
mov dword [esi + 0x27c], eax
mov dword [esi + 0x280], eax
mov dword [esi + 0x284], eax
mov dword [esi + 0x288], eax
mov dword [esi + 0x28c], eax
movsx eax, byte [0x597e06]
movsx ecx, byte [0x597e05]
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], ecx
je 0x4ceea1
cmp byte [0x597e77], 0
mov dword [esp + 0x10], ebp
je 0x4ceb8a
mov dl, byte [0x597e0a]
mov byte [esi + 0x178], dl
jmp 0x4ceb96
push esi
push str.ui_show_hidden__p_n
call fcn.0048f0a0
mov ecx, dword [esp + 0x3e4]
add esp, 8
push ecx
push ebx
push esi
call fcn.004cbf40
jmp 0x4cfdf2
mov al, byte [ebp + 0x178]
mov byte [esi + 0x178], al
cmp byte [0x597e79], 0
je 0x4cebad
mov cl, byte [0x597e09]
mov byte [esi + 0x17a], cl
jmp 0x4cebb9
mov dl, byte [ebp + 0x17a]
mov byte [esi + 0x17a], dl
cmp byte [0x597e78], 0
je 0x4cebcf
mov al, byte [0x597e08]
mov byte [esi + 0x179], al
jmp 0x4cebdb
mov cl, byte [ebp + 0x179]
mov byte [esi + 0x179], cl
cmp byte [0x597e7a], 0
je 0x4cebf2
mov dl, byte [0x597e0b]
mov byte [esi + 0x17c], dl
jmp 0x4cebfe
mov al, byte [ebp + 0x17c]
mov byte [esi + 0x17c], al
cmp byte [0x597e7b], 0
je 0x4cec15
mov cl, byte [0x597e0c]
mov byte [esi + 0x17b], cl
jmp 0x4cec21
mov dl, byte [ebp + 0x17b]
mov byte [esi + 0x17b], dl
cmp byte [0x58a637], 0
je 0x4cec32
mov eax, dword [0x597eb8]
push eax
jmp 0x4cec39
mov ecx, dword [ebp + 0x180]
push ecx
call fcn.0051b6c0
mov dword [esi + 0x180], eax
cmp byte [0x597e7c], 0
je 0x4cec56
mov edx, dword [0x597f40]
push edx
jmp 0x4cec5d
mov eax, dword [ebp + 0xac]
push eax
call fcn.0051b6c0
mov dword [esi + 0xac], eax
cmp byte [0x597e7d], 0
je 0x4cecca
mov ecx, dword [0x597f6c]
push ecx
call fcn.004c37a0
cmp eax, edi
mov dword [esi + 0x29c], eax
je 0x4cec96
movsx edx, byte [0x58a6ba]
mov dword [esi + 0x2a0], edx
jmp 0x4cecaa
mov dword [esi + 0x29c], 0xa
mov dword [esi + 0x2a0], 0
test ebx, ebx
mov dword [esp + 0x24], 0
je 0x4cece2
cmp dword [ebx + 0x84], 0
je 0x4cece2
mov edx, 1
mov dword [esp + 0x24], edx
jmp 0x4cece7
mov eax, dword [ebp + 0x29c]
mov dword [esi + 0x29c], eax
mov ecx, dword [ebp + 0x2a0]
mov dword [esi + 0x2a0], ecx
mov edx, 1
cmp byte [0x597e7e], 0
je 0x4ced36
cmp byte [0x597e0d], 0
je 0x4ced01
mov dword [esi + 0x354], edx
jmp 0x4ced0b
mov dword [esi + 0x354], 0
mov eax, dword [0x58a5e8]
mov ecx, dword [0x58a5ec]
cmp eax, ecx
jge 0x4ced1c
mov eax, ecx
mov ecx, dword [0x58a5f0]
cmp eax, ecx
jle 0x4ced28
mov eax, ecx
cmp eax, edx
jge 0x4ced2e
mov eax, edx
mov dword [esi + 0x358], eax
jmp 0x4ced4e
mov eax, dword [ebp + 0x354]
mov dword [esi + 0x354], eax
mov ecx, dword [ebp + 0x358]
mov dword [esi + 0x358], ecx
cmp byte [0x58a644], 0
je 0x4ced96
mov eax, dword [0x597f74]
movsx edx, byte [0x597f71]
push eax
lea ecx, [esp + 0x2c0]
push ecx
mov dword [esp + 0x38], edx
call fcn.00523040
mov edx, dword [0x597f78]
push edx
lea eax, [esp + 0x1b0]
push eax
call fcn.00523040
movsx ecx, byte [0x58a6bb]
mov dword [esp + 0x38], ecx
jmp 0x4cedff
mov eax, dword [ebp + 0x1b4]
sub eax, 2
je 0x4ceddd
sub eax, edx
je 0x4cedaf
mov dword [esp + 0x30], 0
jmp 0x4cee04
mov eax, dword [ebp + 0x1b8]
lea edx, [esp + 0x1ac]
push edx
push eax
call fcn.00490130
mov ecx, dword [ebp + 0x1b8]
push ecx
call fcn.00490930
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], 2
jmp 0x4cedff
mov edx, dword [ebp + 0x1b8]
push edx
call fcn.0040d0d0
push eax
lea eax, [esp + 0x2c0]
push eax
call fcn.00523040
mov dword [esp + 0x30], 1
mov edx, 1
mov eax, dword [ebp + 0xa4]
xor ecx, ecx
cmp dword [ebp + 0xa0], ecx
mov dword [esi + 0xa4], eax
setne cl
xor eax, eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebp + 0xa8]
mov dword [esi + 0xa8], ecx
cmp dword [ebp + 0xc4], eax
mov ecx, dword [ebp + 0xc8]
setne al
mov dword [esi + 0xc8], ecx
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0xc8]
mov dword [esi + 0xcc], eax
mov cl, byte [ebp + 0x184]
mov byte [esi + 0x184], cl
cmp dword [ebp + 0x2c8], 0
je 0x4cee80
mov eax, dword [ebp + 0x2c4]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x2cc]
mov dword [esp + 0x28], eax
jmp 0x4cf0aa
mov ecx, dword [ebp + 0x60]
push ecx
call fcn.004ad280
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x2cc]
mov edx, 1
mov dword [esp + 0x28], eax
jmp 0x4cf0aa
movzx ecx, byte [0x597e0a]
mov byte [esi + 0x178], cl
movzx edx, byte [0x597e09]
mov byte [esi + 0x17a], dl
mov al, byte [0x597e08]
mov byte [esi + 0x179], al
movzx ecx, byte [0x597e0b]
mov byte [esi + 0x17c], cl
movzx edx, byte [0x597e0c]
mov byte [esi + 0x17b], dl
movsx eax, byte [0x597f3d]
mov ecx, dword [0x58a6bc]
mov dword [esi + 0xa4], ecx
movsx edx, byte [0x58a6b9]
mov dword [esp + 0x4c], eax
mov dword [esi + 0xa8], edx
mov eax, dword [0x597f40]
push eax
call fcn.0051b6c0
mov dword [esi + 0xac], eax
movsx ecx, byte [0x597f3f]
mov edx, dword [0x58a6c0]
mov dword [esi + 0xc8], edx
mov eax, dword [0x58a6c0]
mov dword [esp + 0x50], ecx
mov dword [esi + 0xcc], eax
mov ecx, dword [0x597f6c]
push ecx
call fcn.004c37a0
cmp eax, edi
mov dword [esi + 0x29c], eax
je 0x4cef5c
movsx edx, byte [0x58a6ba]
mov dword [esi + 0x2a0], edx
jmp 0x4cef70
mov dword [esi + 0x29c], 0xa
mov dword [esi + 0x2a0], 0
cmp byte [0x597e7d], 0
je 0x4cef96
test ebx, ebx
mov dword [esp + 0x24], 0
je 0x4cef96
cmp dword [ebx + 0x84], 0
je 0x4cef96
mov dword [esp + 0x24], 1
mov eax, dword [0x59828c]
push eax
call fcn.004c40a0
test eax, eax
mov dword [esp + 0x10], eax
je 0x4cefcd
cmp dword [eax + 0x2c8], 0
je 0x4cefba
mov ecx, dword [eax + 0x2c4]
jmp 0x4cefd4
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x60]
push eax
call fcn.004ad280
mov dword [esp + 0x2c], eax
jmp 0x4cefd8
movsx ecx, byte [0x597e04]
mov dword [esp + 0x2c], ecx
mov edx, dword [0x597eb8]
push edx
call fcn.0051b6c0
mov dword [esi + 0x180], eax
mov ecx, dword [0x597f74]
movsx eax, byte [0x597f71]
push ecx
lea edx, [esp + 0x2c0]
push edx
mov dword [esp + 0x38], eax
call fcn.00523040
mov eax, dword [0x597f78]
push eax
lea ecx, [esp + 0x1b0]
push ecx
call fcn.00523040
cmp byte [0x5980ec], 0
movsx edx, byte [0x58a6bb]
mov dword [esp + 0x38], edx
je 0x4cf042
cmp byte [0x597ec2], 0
sete al
mov byte [esi + 0x184], al
jmp 0x4cf04e
mov cl, byte [0x597ec2]
mov byte [esi + 0x184], cl
cmp byte [0x597e0d], 1
jne 0x4cf063
mov dword [esi + 0x354], 1
jmp 0x4cf06d
mov dword [esi + 0x354], 0
mov eax, dword [0x58a5e8]
mov ecx, dword [0x58a5ec]
cmp eax, ecx
jge 0x4cf07e
mov eax, ecx
mov ecx, dword [0x58a5f0]
cmp eax, ecx
jle 0x4cf08a
mov eax, ecx
cmp eax, 1
jge 0x4cf094
mov eax, 1
mov dword [esi + 0x358], eax
movsx edx, byte [0x597e07]
mov dword [esp + 0x28], edx
mov edx, 1
mov eax, dword [esp + 0x3dc]
cmp eax, 3
mov dword [esi + 0x360], edx
mov dword [esi + 0x364], edx
mov dword [esi + 0x35c], edx
mov dword [esi + 0x368], edx
je 0x4cf0e3
cmp eax, 2
je 0x4cf0dd
cmp eax, 6
je 0x4cf0dd
cmp eax, 7
jne 0x4cf0e7
mov dword [esp + 0x3c], edx
jmp 0x4cf0e7
mov dword [esp + 0x2c], edx
test ebx, ebx
mov ecx, 0x8000
je 0x4cf35a
mov eax, dword [ebx + 4]
test eax, 0x200
je 0x4cf104
mov dword [esp + 0x2c], edx
jmp 0x4cf115
test dword [ebx + 8], 0x200
je 0x4cf115
mov dword [esp + 0x2c], 0
test eax, 0x400
je 0x4cf122
mov dword [esp + 0x3c], edx
jmp 0x4cf133
test dword [ebx + 8], 0x400
je 0x4cf133
mov dword [esp + 0x3c], 0
test eax, 0x800
je 0x4cf140
mov dword [esp + 0x44], edx
jmp 0x4cf151
test dword [ebx + 8], 0x800
je 0x4cf151
mov dword [esp + 0x44], 0
test eax, 0x200000
je 0x4cf15e
mov dword [esp + 0x28], edx
jmp 0x4cf16f
test dword [ebx + 8], 0x200000
je 0x4cf16f
mov dword [esp + 0x28], 0
test eax, 0x1000
je 0x4cf17f
mov byte [esi + 0x17b], 1
jmp 0x4cf18f
test dword [ebx + 8], 0x1000
je 0x4cf18f
mov byte [esi + 0x17b], 0
mov eax, 0x2000
test dword [ebx + 4], eax
je 0x4cf1a2
mov byte [esi + 0x178], 1
jmp 0x4cf1ae
test dword [ebx + 8], eax
je 0x4cf1ae
mov byte [esi + 0x178], 0
mov eax, 0x4000
test dword [ebx + 4], eax
je 0x4cf1c1
mov byte [esi + 0x179], 1
jmp 0x4cf1cd
test dword [ebx + 8], eax
je 0x4cf1cd
mov byte [esi + 0x179], 0
test dword [ebx + 4], ecx
je 0x4cf1db
mov byte [esi + 0x17a], 1
jmp 0x4cf1e7
test dword [ebx + 8], ecx
je 0x4cf1e7
mov byte [esi + 0x17a], 0
mov eax, 0x10000
test dword [ebx + 4], eax
je 0x4cf1fa
mov byte [esi + 0x17c], 1
jmp 0x4cf206
test dword [ebx + 8], eax
je 0x4cf206
mov byte [esi + 0x17c], 0
mov eax, dword [ebx]
test eax, 0x80000
je 0x4cf21b
mov dword [esi + 0x354], 0
jmp 0x4cf228
test eax, 0x100000
je 0x4cf228
mov dword [esi + 0x354], edx
mov eax, dword [ebx + 0x70]
test eax, eax
je 0x4cf253
mov ecx, dword [0x58a5ec]
cmp eax, ecx
jge 0x4cf23b
mov eax, ecx
mov ecx, dword [0x58a5f0]
cmp eax, ecx
jle 0x4cf247
mov eax, ecx
cmp eax, edx
jge 0x4cf24d
mov eax, edx
mov dword [esi + 0x358], eax
cmp dword [ebx + 0x84], 0
je 0x4cf2ae
lea eax, [esp + 0x9c]
push eax
call fcn.00522730
movsx ecx, byte [esi + 0x17b]
push ebx
push ecx
lea edx, [esp + 0xa4]
push edx
call fcn.00405d80
mov eax, dword [esp + 0xa4]
mov ecx, dword [esi + 0x180]
push eax
push ecx
call fcn.005220d0
lea edx, [esp + 0x9c]
push edx
mov dword [esi + 0x180], eax
mov dword [esp + 0x4c], 0
call fcn.00401260
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4cf2c8
push eax
mov eax, dword [esi + 0xac]
push eax
call fcn.005220d0
mov dword [esi + 0xac], eax
mov eax, dword [ebx + 0x6c]
cmp eax, edi
je 0x4cf2ef
mov dword [esi + 0x29c], eax
cmp dword [ebx + 0x68], 0
jne 0x4cf2e7
push eax
call fcn.004c37e0
mov dword [esi + 0x2a0], eax
xor edi, edi
mov dword [esp + 0x24], edi
jmp 0x4cf2f1
xor edi, edi
mov eax, dword [ebx + 0x68]
cmp eax, edi
je 0x4cf309
xor ecx, ecx
cmp eax, edi
setg cl
mov dword [esp + 0x24], edi
mov dword [esi + 0x2a0], ecx
mov eax, dword [ebx + 0x18]
cmp eax, edi
je 0x4cf328
push eax
lea edx, [esp + 0x2c0]
push edx
call fcn.00523040
mov dword [esp + 0x30], 1
jmp 0x4cf35a
mov eax, dword [ebx + 0x34]
cmp eax, edi
je 0x4cf34e
push eax
lea eax, [esp + 0x1b0]
push eax
call fcn.00523040
mov ecx, dword [ebx + 0x58]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], 2
jmp 0x4cf35a
test dword [ebx], 0x400
je 0x4cf35a
mov dword [esp + 0x30], edi
test ebp, ebp
je 0x4cf36c
mov edx, dword [ebp + 0x1f4]
mov dword [esi + 0x1f4], edx
jmp 0x4cf377
mov eax, dword [0x597e1c]
mov dword [esi + 0x1f4], eax
cmp byte [0x58a5e3], 0
mov dword [esp + 0x34], 0
mov ebx, closesocket
je 0x4cf397
mov dword [esp + 0x34], 0x40000
jmp 0x4cf3f0
push 0x7f00
push 0
call dword [0x597d94]
mov ecx, dword [0x598130]
mov edx, dword [0x598134]
push eax
push ecx
push edx
push 0x4c11d0
push str.EVERYTHING_NOTASKBAR
push 8
call fcn.004a9be0
mov eax, dword [0x59812c]
push 0
push eax
push 0
push 0
push 0x6e
push 0x6e
push 0
push 0
push ebx
push 0x55068a
push str.EVERYTHING_NOTASKBAR
push 0x80
call fcn.004a9d30
mov dword [esi + 0x5c], eax
cmp byte [0x5980ec], 0
je 0x4cf401
or dword [esp + 0x34], 0x400000
cmp dword [0x58a5e4], 0xfe
ja 0x4cf41e
cmp dword [0x5981e4], 0
je 0x4cf41e
or dword [esp + 0x34], 0x80000
cmp dword [esp + 0x10], 0
je 0x4cf4e8
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x2a4]
mov eax, dword [ecx + 0x2a8]
mov edi, dword [ecx + 0x2ac]
mov ebp, dword [ecx + 0x2b0]
sub ebp, eax
add eax, 0x16
sub edi, ebx
add ebx, 0x16
lea edx, [eax + ebp]
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
lea ecx, [edi + ebx]
mov dword [esp + 0x1c], ecx
push eax
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], edx
call fcn.004afe80
test eax, eax
jne 0x4cf5f5
mov edx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.004ac680
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x60]
jle 0x4cf4a6
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x64]
jle 0x4cf4b8
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
add eax, edi
mov dword [esp + 0x1c], eax
push edx
lea eax, [esp + 0x18]
add ecx, ebp
push eax
mov dword [esp + 0x28], ecx
call fcn.004afe80
test eax, eax
je 0x4cf5f5
jmp 0x4cf5dd
push 2
mov dword [esp + 0x14], ebx
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edx, dword [0x58b9c8]
mov ecx, dword [0x58b9b0]
add ecx, edx
add ecx, dword [0x58b9a8]
mov edi, eax
add ecx, dword [0x58b9a0]
mov eax, 0x2aaaaaab
imul ecx, dword [0x58de84]
imul ecx
mov eax, dword [0x58a628]
sar edx, 4
mov ecx, edx
add edi, edx
shr ecx, 0x1f
add ecx, edi
mov edi, dword [0x58a624]
test edi, edi
je 0x4cf53d
test eax, eax
jne 0x4cf545
mov edi, 9
lea eax, [edi - 2]
imul eax, ecx
xor edx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
cdq
idiv edi
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
push eax
push 1
push 0x16cf0000
push ecx
call dword [sym.imp.USER32.dll_AdjustWindowRectEx]
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
mov eax, dword [0x597dfc]
sub edi, dword [esp + 0x14]
sub ebp, dword [esp + 0x18]
test eax, eax
jle 0x4cf5f5
mov edx, dword [0x597e00]
test edx, edx
jle 0x4cf5f5
mov edi, dword [0x597df8]
mov ecx, dword [0x597df4]
mov dword [esp + 0x18], edi
add edi, edx
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x28]
push edi
lea edx, [esp + 0x18]
add eax, ecx
push edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
call fcn.004afe80
test eax, eax
jne 0x4cf5dd
cmp byte [0x58a5e0], al
je 0x4cf5dd
push edi
lea eax, [esp + 0x18]
push eax
call fcn.004afe00
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
sub edi, ebx
mov dword [esp + 0x10], eax
sub ebp, eax
mov eax, dword [esp + 0x10]
lea edx, [eax + ebp]
mov dword [esi + 0x2a8], eax
lea eax, [esp + 0x9c]
lea ecx, [edi + ebx]
push eax
mov dword [esi + 0x2a4], ebx
mov dword [esi + 0x2ac], ecx
mov dword [esi + 0x2b0], edx
call fcn.00522730
push str.EVERYTHING
lea ecx, [esp + 0xa0]
push ecx
call fcn.00523040
call fcn.004a3690
test eax, eax
je 0x4cf65a
call fcn.004a3690
push eax
lea edx, [esp + 0xa0]
push 0x56c408
push edx
call fcn.005236a0
add esp, 0xc
push 0x7f00
push 0
call dword [0x597d94]
mov ecx, dword [0x598134]
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [0x598130]
push eax
push ecx
push 0x4ccd10
push edx
push 8
call fcn.004a9be0
mov eax, dword [0x59812c]
mov ecx, dword [esi + 0x5c]
mov edx, dword [esp + 0x10]
push 0
push eax
mov eax, dword [esp + 0xac]
push 0
push ecx
mov ecx, dword [esp + 0x44]
push ebp
push edi
push edx
push ebx
push 0x6cf0000
push 0x55068a
push eax
push ecx
call fcn.004a9d30
lea edx, [esp + 0x9c]
push edx
mov dword [esi + 0x60], eax
call fcn.00401260
mov eax, dword [esi + 0x60]
push esi
push eax
call fcn.004ac210
push 0x7f00
push 0
call dword [0x597d94]
push eax
push 0
push 0
push 0x4c7050
push str.EVERYTHING_TOOLBAR
push 8
call fcn.004a9be0
mov ecx, dword [0x59812c]
mov edx, dword [esi + 0x60]
mov al, byte [esi + 0x184]
push 0
push ecx
push 0x2716
push edx
push 0
push 0
push 0
neg al
push 0
push 0x56000000
push 0x55068a
push str.EVERYTHING_TOOLBAR
sbb eax, eax
and eax, 0x400000
push eax
call fcn.004a9d30
push esi
push eax
mov dword [esi + 0x64], eax
call fcn.004ac210
push esi
call fcn.004ce870
xor edi, edi
call dword [0x58def0]
test eax, eax
je 0x4cf75c
call dword [0x58def4]
test eax, eax
jne 0x4cf761
mov edi, 0x200
mov ecx, dword [0x59812c]
mov edx, dword [esi + 0x60]
mov al, byte [esi + 0x184]
xor ebp, ebp
push ebp
push ecx
push 0x2724
push edx
push ebp
push ebp
neg al
push ebp
push ebp
push 0x56010000
push 0x55068a
push str.SysListView32
sbb eax, eax
and eax, 0x400000
or eax, edi
push eax
call fcn.004a9d30
push esi
push eax
mov dword [esi + 0x2e4], eax
call fcn.004ac210
mov ecx, dword [esi + 0x2e4]
push 0x4f8110
push ecx
call fcn.004ac230
mov cl, byte [esi + 0x184]
push ebp
mov dword [esi + 0x78], eax
mov edx, dword [0x59812c]
mov eax, dword [esi + 0x2e4]
push edx
push 0x2719
push eax
push ebp
push ebp
push ebp
neg cl
push ebp
push 0x560000c2
push 0x55068a
push str.SysHeader32
sbb ecx, ecx
and ecx, 0x400000
push ecx
call fcn.004a9d30
cmp dword [esi + 0x354], ebp
mov dword [esi + 0x6c], eax
je 0x4cf80f
push ebp
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [esi + 0x6c]
push esi
push edx
call fcn.004ac210
mov eax, dword [esi + 0x6c]
push 0x4c4360
push eax
call fcn.004ac230
mov dword [esi + 0x74], eax
mov eax, dword [esp + 0x40]
cmp eax, ebp
je 0x4cf83a
cmp dword [eax + 0x80], ebp
jmp 0x4cf841
cmp byte [0x58a6c4], 0
je 0x4cf84a
push 1
call fcn.004c9c30
call dword [sym.imp.USER32.dll_CreateMenu]
mov dword [esi + 0x58], eax
mov ecx, dword [0x58de7c]
mov edx, dword [ecx + 0x1e4]
push 0x2711
push edx
push eax
call fcn.004a8a20
mov eax, dword [0x58de7c]
mov ecx, dword [eax + 0x1e8]
mov edx, dword [esi + 0x58]
push 0x2712
push ecx
push edx
call fcn.004a8a20
mov eax, dword [0x58de7c]
mov ecx, dword [eax + 0x754]
mov edx, dword [esi + 0x58]
push 0x271d
push ecx
push edx
call fcn.004a8a20
mov eax, dword [0x58de7c]
mov ecx, dword [eax + 0x1ec]
mov edx, dword [esi + 0x58]
push 0x2713
push ecx
push edx
call fcn.004a8a20
mov eax, dword [0x58de7c]
mov ecx, dword [eax + 0xa2c]
mov edx, dword [esi + 0x58]
push 0x2725
push ecx
push edx
call fcn.004a8a20
mov eax, dword [0x58de7c]
mov ecx, dword [eax + 0x1f0]
mov edx, dword [esi + 0x58]
push 0x2714
push ecx
push edx
call fcn.004a8a20
mov eax, dword [0x58de7c]
mov ecx, dword [eax + 0x1f4]
mov edx, dword [esi + 0x58]
push 0x2715
push ecx
push edx
call fcn.004a8a20
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x60]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetMenu]
push esi
call fcn.004e4910
call fcn.004caa50
call fcn.004ca950
push str.initheader_n
call fcn.0048f0a0
mov ecx, dword [0x598030]
add esp, 4
mov dword [esp + 0x10], ebp
lea edi, [esp + 0xa4]
cmp dword [esp + 0x40], 0
mov dword [edi - 4], ebp
je 0x4cf980
mov ebx, dword [esp + 0x40]
push ebp
push ebx
call fcn.004ebc50
push ebp
push ebx
mov dword [edi], eax
call fcn.004ebb50
mov edx, dword [esp + 0x40]
push ebp
push edx
mov dword [edi + 4], eax
lea ebx, [edi - 8]
call fcn.004ebba0
mov ecx, dword [0x598030]
mov dword [ebx], eax
mov eax, dword [esp + 0x10]
jmp 0x4cf999
mov eax, dword [esp + 0x10]
mov edx, dword [ecx + eax + 8]
mov dword [edi], edx
mov edx, dword [ecx + eax]
mov dword [edi + 4], edx
mov edx, dword [ecx + eax + 4]
lea ebx, [edi - 8]
mov dword [ebx], edx
add eax, 0xc
mov dword [esp + ebp*4 + 0x68], ebx
add ebp, 1
add edi, 0x10
cmp eax, 0x9c
mov dword [esp + 0x10], eax
jl 0x4cf943
push 0x4c0f10
push 0xd
lea eax, [esp + 0x70]
push eax
call fcn.004b39b0
mov ebp, dword [0x597dc4]
xor ebx, ebx
lea ebx, [ebx]
mov eax, dword [esp + ebx*4 + 0x68]
cmp dword [eax + 4], 0
je 0x4cf9e0
cmp dword [eax + 8], 0
je 0x4cfa02
mov ecx, dword [esi + 0x6c]
push 0
push 0
push 0
push 0x1200
push ecx
mov edi, eax
call ebp
mov edx, dword [edi + 0xc]
push eax
mov eax, dword [edi + 4]
push edx
push eax
push esi
call fcn.004ebf90
add ebx, 1
cmp ebx, 0xd
jl 0x4cf9d0
mov ecx, dword [esi + 0x2a0]
mov edx, dword [esi + 0x29c]
mov eax, dword [esi + edx*4 + 0x25c]
neg ecx
sbb ecx, ecx
and ecx, 0x200
add ecx, 0x200
push ecx
mov ecx, dword [esi + 0x6c]
push eax
push ecx
call fcn.004ae2a0
push esi
call fcn.004c16e0
push str.initsearch_n
call fcn.0048f0a0
mov edx, dword [esi + 0x180]
mov eax, dword [esi + 0x68]
movsx edi, byte [0x58a6c6]
add esp, 4
push edx
push eax
mov dword [esi + 0x1f8], 1
call fcn.004a9a20
mov eax, edi
sub eax, 0
mov dword [esi + 0x1f8], 0
je 0x4cfa9c
sub eax, 2
je 0x4cfa93
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4cfa9c
mov edx, dword [esi + 0x68]
push edx
call fcn.004af920
cmp dword [esi + 0x2cc], 2
jne 0x4cfab8
mov eax, dword [esi + 0x180]
movzx ecx, byte [eax]
mov edx, dword [esi + 0x60]
push ecx
push edx
call fcn.004aeb90
push str.parts_n
call fcn.0048f0a0
add esp, 4
push esi
call fcn.004c4f10
cmp dword [esp + 0x4c], 0
je 0x4cfadb
push 1
mov eax, esi
call fcn.004c9b30
cmp dword [esp + 0x50], 0
je 0x4cfaea
push 1
push esi
call fcn.0050fab0
push str.setmode_n
call fcn.0048f0a0
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x48]
add esp, 4
push 0
push edi
push ebx
push eax
push esi
call fcn.004c2340
mov eax, dword [esp + 0x28]
cmp eax, dword [esi + 0x2cc]
je 0x4cfb52
mov dword [esi + 0x2cc], eax
sub eax, 0
je 0x4cfb47
sub eax, 1
je 0x4cfb3f
sub eax, 1
jne 0x4cfb52
mov ecx, dword [esi + 0x180]
movzx edx, byte [ecx]
mov eax, dword [esi + 0x60]
push edx
push eax
jmp 0x4cfb4d
mov ecx, dword [esi + 0x60]
push 1
push ecx
jmp 0x4cfb4d
mov edx, dword [esi + 0x60]
push 0
push edx
call fcn.004aeb90
push str.size_n
call fcn.0048f0a0
add esp, 4
push esi
call fcn.004c8250
mov ecx, dword [0x58a5e4]
cmp ecx, 0xfe
ja 0x4cfb87
mov eax, dword [0x5981e4]
test eax, eax
je 0x4cfb87
push 2
push ecx
mov ecx, dword [esi + 0x60]
push 0
push ecx
call eax
push 0x56f8b0
call fcn.0048f0a0
add esp, 4
test edi, edi
je 0x4cfba0
mov edx, dword [esi + 0x60]
push 7
push edx
jmp 0x4cfbb2
test ebx, ebx
je 0x4cfbac
mov eax, dword [esi + 0x60]
push 3
push eax
jmp 0x4cfbb2
mov ecx, dword [esi + 0x60]
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
push str.redraw_n
call fcn.0048f0a0
mov edx, dword [esi + 0x60]
add esp, 4
push 0x180
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
mov edi, dword [sym.imp.USER32.dll_SetFocus]
jne 0x4cfc52
mov eax, dword [esi + 0x60]
push eax
call fcn.004b2880
push str.enter_setfocus_n
call fcn.0048f0a0
add esp, 4
cmp dword [esp + 0x48], 0
je 0x4cfc21
movsx eax, byte [0x58a6c5]
sub eax, 0
je 0x4cfc4c
sub eax, 2
je 0x4cfc43
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4cfc4c
movsx eax, byte [0x58a6c6]
sub eax, 0
je 0x4cfc4c
sub eax, 2
je 0x4cfc43
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4cfc4c
mov edx, dword [esi + 0x68]
push edx
call fcn.004af920
mov eax, dword [esi + 0x68]
push eax
call edi
push str.leave_setfocus_n
call fcn.0048f0a0
mov ebx, dword [esp + 0x58]
add esp, 4
xor edi, edi
test ebx, ebx
je 0x4cfc8c
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x4cfc8c
mov ecx, dword [0x597de0]
push eax
push ecx
call fcn.00403410
mov edi, eax
test edi, edi
je 0x4cfc8c
test dword [edi + 8], 0x8000
jne 0x4cfd03
mov eax, dword [esp + 0x30]
sub eax, 1
je 0x4cfcc1
sub eax, 1
je 0x4cfca7
mov edx, dword [esp + 0x24]
push edx
push esi
call fcn.00511660
jmp 0x4cfd03
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x1b4]
push eax
push ecx
push edx
push esi
call fcn.00511840
jmp 0x4cfd03
lea eax, [esp + 0x9c]
push eax
call fcn.00522730
mov ecx, dword [esp + 0x2c4]
push ecx
lea edx, [esp + 0xa0]
push edx
call fcn.00525620
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xa4]
push eax
push ecx
push esi
call fcn.005116b0
lea edx, [esp + 0x9c]
push edx
call fcn.00401260
test edi, edi
je 0x4cfd0c
call fcn.004cb6f0
test ebx, ebx
je 0x4cfdc0
mov edi, dword [ebx + 0x50]
test edi, edi
je 0x4cfd76
push esi
call fcn.005108b0
test eax, eax
push edi
je 0x4cfd62
push esi
call fcn.00510960
mov edi, eax
cmp edi, 0xffffffff
je 0x4cfdc0
push 1
push 1
push 1
push 0
push 1
push 1
push edi
push esi
call fcn.004f62b0
push 0
push edi
push esi
call fcn.004f5930
mov eax, dword [esi + 0x2e4]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x4cfdc0
mov ecx, dword [esi + 0x1dc]
push ecx
call fcn.005220d0
mov dword [esi + 0x1dc], eax
jmp 0x4cfdc0
mov eax, dword [ebx + 0x78]
test eax, eax
je 0x4cfdc0
add eax, 0xffffffff
xor edi, edi
cmp eax, 3
ja case.default.0x4cfd87
jmp dword [eax*4 + 0x4cfe10]
mov edi, 1
jmp case.default.0x4cfd87
mov edi, 2
jmp case.default.0x4cfd87
mov edi, 5
jmp case.default.0x4cfd87
mov edi, 6
mov edx, dword [esi + 0x2e4]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
test edi, edi
je 0x4cfdc0
push edi
push esi
call fcn.004f6f90
lea eax, [esp + 0x1ac]
push eax
mov dword [esi + 0x12c], 1
call fcn.00401260
lea ecx, [esp + 0x2bc]
push ecx
call fcn.00401260
push ebx
push str.ui_create_leave__p_n
call fcn.0048f0a0
add esp, 8
mov ecx, dword [esp + 0x3cc]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0054899c
add esp, 0x3c0
ret 0xc