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

Disassembly:
sub esp, 0x3c0
mov eax, dword [0x597fa8]
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.0048f080
add esp, 0xc
cmp byte [0x598ef2], 0
je 0x4cfa51
test ebp, ebp
jne 0x4cfa51
mov esi, dword [0x59930c]
test esi, esi
je 0x4cfa51
mov edi, dword [sym.imp.USER32.dll_IsWindowVisible]
lea ebx, [ebx]
cmp dword [esi + 0x12c], 0
je 0x4cfa47
mov eax, dword [esi + 0x60]
push eax
call edi
test eax, eax
je 0x4cfbe8
mov esi, dword [esi + 0x124]
test esi, esi
jne 0x4cfa30
lea edx, [esp + 0x2bc]
push edx
call fcn.00523650
lea eax, [esp + 0x1ac]
push eax
call fcn.00523650
mov eax, 1
push 0x480
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x28], eax
call fcn.004a47b0
push 0x480
mov esi, eax
push 0
push esi
call fcn.00549ff0
mov eax, dword [0x59930c]
add esp, 0xc
test eax, eax
je 0x4cfaa7
mov dword [eax + 0x128], esi
cmp dword [0x599310], 0
mov dword [esi + 0x124], eax
mov dword [esi + 0x128], 0
mov dword [0x59930c], esi
jne 0x4cfacc
mov dword [0x599310], 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], 0x5726f0
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.004bebc0
lea edx, [esi + 0x3a0]
push edx
call fcn.004a8b50
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 [0x598e66]
movsx ecx, byte [0x598e65]
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], ecx
je 0x4cff21
cmp byte [0x598ed7], 0
mov dword [esp + 0x10], ebp
je 0x4cfc0a
mov dl, byte [0x598e6a]
mov byte [esi + 0x178], dl
jmp 0x4cfc16
push esi
push str.ui_show_hidden__p_n
call fcn.0048f080
mov ecx, dword [esp + 0x3e4]
add esp, 8
push ecx
push ebx
push esi
call fcn.004ccfb0
jmp 0x4d0e9f
mov al, byte [ebp + 0x178]
mov byte [esi + 0x178], al
cmp byte [0x598ed9], 0
je 0x4cfc2d
mov cl, byte [0x598e69]
mov byte [esi + 0x17a], cl
jmp 0x4cfc39
mov dl, byte [ebp + 0x17a]
mov byte [esi + 0x17a], dl
cmp byte [0x598ed8], 0
je 0x4cfc4f
mov al, byte [0x598e68]
mov byte [esi + 0x179], al
jmp 0x4cfc5b
mov cl, byte [ebp + 0x179]
mov byte [esi + 0x179], cl
cmp byte [0x598eda], 0
je 0x4cfc72
mov dl, byte [0x598e6b]
mov byte [esi + 0x17c], dl
jmp 0x4cfc7e
mov al, byte [ebp + 0x17c]
mov byte [esi + 0x17c], al
cmp byte [0x598edb], 0
je 0x4cfc95
mov cl, byte [0x598e6c]
mov byte [esi + 0x17b], cl
jmp 0x4cfca1
mov dl, byte [ebp + 0x17b]
mov byte [esi + 0x17b], dl
cmp byte [0x58b68c], 0
je 0x4cfcb2
mov eax, dword [0x598f1c]
push eax
jmp 0x4cfcb9
mov ecx, dword [ebp + 0x180]
push ecx
call fcn.0051c5e0
mov dword [esi + 0x180], eax
cmp byte [0x598edc], 0
je 0x4cfcd6
mov edx, dword [0x598fa0]
push edx
jmp 0x4cfcdd
mov eax, dword [ebp + 0xac]
push eax
call fcn.0051c5e0
mov dword [esi + 0xac], eax
cmp byte [0x598edd], 0
je 0x4cfd4a
mov ecx, dword [0x598fd0]
push ecx
call fcn.004c4730
cmp eax, edi
mov dword [esi + 0x29c], eax
je 0x4cfd16
movsx edx, byte [0x58b703]
mov dword [esi + 0x2a0], edx
jmp 0x4cfd2a
mov dword [esi + 0x29c], 0xa
mov dword [esi + 0x2a0], 0
test ebx, ebx
mov dword [esp + 0x24], 0
je 0x4cfd62
cmp dword [ebx + 0x90], 0
je 0x4cfd62
mov edx, 1
mov dword [esp + 0x24], edx
jmp 0x4cfd67
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 [0x598ede], 0
je 0x4cfdb6
cmp byte [0x598e6d], 0
je 0x4cfd81
mov dword [esi + 0x354], edx
jmp 0x4cfd8b
mov dword [esi + 0x354], 0
mov eax, dword [0x58b630]
mov ecx, dword [0x58b634]
cmp eax, ecx
jge 0x4cfd9c
mov eax, ecx
mov ecx, dword [0x58b638]
cmp eax, ecx
jle 0x4cfda8
mov eax, ecx
cmp eax, edx
jge 0x4cfdae
mov eax, edx
mov dword [esi + 0x358], eax
jmp 0x4cfdce
mov eax, dword [ebp + 0x354]
mov dword [esi + 0x354], eax
mov ecx, dword [ebp + 0x358]
mov dword [esi + 0x358], ecx
cmp byte [0x58b68d], 0
je 0x4cfe16
mov eax, dword [0x598fd4]
movsx edx, byte [0x598fca]
push eax
lea ecx, [esp + 0x2c0]
push ecx
mov dword [esp + 0x38], edx
call fcn.00523fb0
mov edx, dword [0x598fd8]
push edx
lea eax, [esp + 0x1b0]
push eax
call fcn.00523fb0
movsx ecx, byte [0x58b70c]
mov dword [esp + 0x38], ecx
jmp 0x4cfe7f
mov eax, dword [ebp + 0x1b4]
sub eax, 2
je 0x4cfe5d
sub eax, edx
je 0x4cfe2f
mov dword [esp + 0x30], 0
jmp 0x4cfe84
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 0x4cfe7f
mov edx, dword [ebp + 0x1b8]
push edx
call fcn.0040d0c0
push eax
lea eax, [esp + 0x2c0]
push eax
call fcn.00523fb0
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 0x4cff00
mov eax, dword [ebp + 0x2c4]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x2cc]
mov dword [esp + 0x28], eax
jmp 0x4d012a
mov ecx, dword [ebp + 0x60]
push ecx
call fcn.004ada30
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x2cc]
mov edx, 1
mov dword [esp + 0x28], eax
jmp 0x4d012a
movzx ecx, byte [0x598e6a]
mov byte [esi + 0x178], cl
movzx edx, byte [0x598e69]
mov byte [esi + 0x17a], dl
mov al, byte [0x598e68]
mov byte [esi + 0x179], al
movzx ecx, byte [0x598e6b]
mov byte [esi + 0x17c], cl
movzx edx, byte [0x598e6c]
mov byte [esi + 0x17b], dl
movsx eax, byte [0x598f9e]
mov ecx, dword [0x58b704]
mov dword [esi + 0xa4], ecx
movsx edx, byte [0x58b702]
mov dword [esp + 0x4c], eax
mov dword [esi + 0xa8], edx
mov eax, dword [0x598fa0]
push eax
call fcn.0051c5e0
mov dword [esi + 0xac], eax
movsx ecx, byte [0x598fb8]
mov edx, dword [0x58b708]
mov dword [esi + 0xc8], edx
mov eax, dword [0x58b708]
mov dword [esp + 0x50], ecx
mov dword [esi + 0xcc], eax
mov ecx, dword [0x598fd0]
push ecx
call fcn.004c4730
cmp eax, edi
mov dword [esi + 0x29c], eax
je 0x4cffdc
movsx edx, byte [0x58b703]
mov dword [esi + 0x2a0], edx
jmp 0x4cfff0
mov dword [esi + 0x29c], 0xa
mov dword [esi + 0x2a0], 0
cmp byte [0x598edd], 0
je 0x4d0016
test ebx, ebx
mov dword [esp + 0x24], 0
je 0x4d0016
cmp dword [ebx + 0x90], 0
je 0x4d0016
mov dword [esp + 0x24], 1
mov eax, dword [0x59930c]
push eax
call fcn.004c5030
test eax, eax
mov dword [esp + 0x10], eax
je 0x4d004d
cmp dword [eax + 0x2c8], 0
je 0x4d003a
mov ecx, dword [eax + 0x2c4]
jmp 0x4d0054
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x60]
push eax
call fcn.004ada30
mov dword [esp + 0x2c], eax
jmp 0x4d0058
movsx ecx, byte [0x598e64]
mov dword [esp + 0x2c], ecx
mov edx, dword [0x598f1c]
push edx
call fcn.0051c5e0
mov dword [esi + 0x180], eax
mov ecx, dword [0x598fd4]
movsx eax, byte [0x598fca]
push ecx
lea edx, [esp + 0x2c0]
push edx
mov dword [esp + 0x38], eax
call fcn.00523fb0
mov eax, dword [0x598fd8]
push eax
lea ecx, [esp + 0x1b0]
push ecx
call fcn.00523fb0
cmp byte [0x599150], 0
movsx edx, byte [0x58b70c]
mov dword [esp + 0x38], edx
je 0x4d00c2
cmp byte [0x598f23], 0
sete al
mov byte [esi + 0x184], al
jmp 0x4d00ce
mov cl, byte [0x598f23]
mov byte [esi + 0x184], cl
cmp byte [0x598e6d], 1
jne 0x4d00e3
mov dword [esi + 0x354], 1
jmp 0x4d00ed
mov dword [esi + 0x354], 0
mov eax, dword [0x58b630]
mov ecx, dword [0x58b634]
cmp eax, ecx
jge 0x4d00fe
mov eax, ecx
mov ecx, dword [0x58b638]
cmp eax, ecx
jle 0x4d010a
mov eax, ecx
cmp eax, 1
jge 0x4d0114
mov eax, 1
mov dword [esi + 0x358], eax
movsx edx, byte [0x598e67]
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 0x4d0163
cmp eax, 2
je 0x4d015d
cmp eax, 6
je 0x4d015d
cmp eax, 7
jne 0x4d0167
mov dword [esp + 0x3c], edx
jmp 0x4d0167
mov dword [esp + 0x2c], edx
test ebx, ebx
mov ecx, 0x8000
je 0x4d03da
mov eax, dword [ebx + 4]
test eax, 0x200
je 0x4d0184
mov dword [esp + 0x2c], edx
jmp 0x4d0195
test dword [ebx + 8], 0x200
je 0x4d0195
mov dword [esp + 0x2c], 0
test eax, 0x400
je 0x4d01a2
mov dword [esp + 0x3c], edx
jmp 0x4d01b3
test dword [ebx + 8], 0x400
je 0x4d01b3
mov dword [esp + 0x3c], 0
test eax, 0x800
je 0x4d01c0
mov dword [esp + 0x44], edx
jmp 0x4d01d1
test dword [ebx + 8], 0x800
je 0x4d01d1
mov dword [esp + 0x44], 0
test eax, 0x200000
je 0x4d01de
mov dword [esp + 0x28], edx
jmp 0x4d01ef
test dword [ebx + 8], 0x200000
je 0x4d01ef
mov dword [esp + 0x28], 0
test eax, 0x1000
je 0x4d01ff
mov byte [esi + 0x17b], 1
jmp 0x4d020f
test dword [ebx + 8], 0x1000
je 0x4d020f
mov byte [esi + 0x17b], 0
mov eax, 0x2000
test dword [ebx + 4], eax
je 0x4d0222
mov byte [esi + 0x178], 1
jmp 0x4d022e
test dword [ebx + 8], eax
je 0x4d022e
mov byte [esi + 0x178], 0
mov eax, 0x4000
test dword [ebx + 4], eax
je 0x4d0241
mov byte [esi + 0x179], 1
jmp 0x4d024d
test dword [ebx + 8], eax
je 0x4d024d
mov byte [esi + 0x179], 0
test dword [ebx + 4], ecx
je 0x4d025b
mov byte [esi + 0x17a], 1
jmp 0x4d0267
test dword [ebx + 8], ecx
je 0x4d0267
mov byte [esi + 0x17a], 0
mov eax, 0x10000
test dword [ebx + 4], eax
je 0x4d027a
mov byte [esi + 0x17c], 1
jmp 0x4d0286
test dword [ebx + 8], eax
je 0x4d0286
mov byte [esi + 0x17c], 0
mov eax, dword [ebx]
test eax, 0x80000
je 0x4d029b
mov dword [esi + 0x354], 0
jmp 0x4d02a8
test eax, 0x100000
je 0x4d02a8
mov dword [esi + 0x354], edx
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x4d02d3
mov ecx, dword [0x58b634]
cmp eax, ecx
jge 0x4d02bb
mov eax, ecx
mov ecx, dword [0x58b638]
cmp eax, ecx
jle 0x4d02c7
mov eax, ecx
cmp eax, edx
jge 0x4d02cd
mov eax, edx
mov dword [esi + 0x358], eax
cmp dword [ebx + 0x90], 0
je 0x4d032e
lea eax, [esp + 0x9c]
push eax
call fcn.00523650
movsx ecx, byte [esi + 0x17b]
push ebx
push ecx
lea edx, [esp + 0xa4]
push edx
call fcn.00405d70
mov eax, dword [esp + 0xa4]
mov ecx, dword [esi + 0x180]
push eax
push ecx
call fcn.00522ff0
lea edx, [esp + 0x9c]
push edx
mov dword [esi + 0x180], eax
mov dword [esp + 0x4c], 0
call fcn.00401210
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4d0348
push eax
mov eax, dword [esi + 0xac]
push eax
call fcn.00522ff0
mov dword [esi + 0xac], eax
mov eax, dword [ebx + 0x70]
cmp eax, edi
je 0x4d036f
mov dword [esi + 0x29c], eax
cmp dword [ebx + 0x6c], 0
jne 0x4d0367
push eax
call fcn.004c4770
mov dword [esi + 0x2a0], eax
xor edi, edi
mov dword [esp + 0x24], edi
jmp 0x4d0371
xor edi, edi
mov eax, dword [ebx + 0x6c]
cmp eax, edi
je 0x4d0389
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 0x4d03a8
push eax
lea edx, [esp + 0x2c0]
push edx
call fcn.00523fb0
mov dword [esp + 0x30], 1
jmp 0x4d03da
mov eax, dword [ebx + 0x34]
cmp eax, edi
je 0x4d03ce
push eax
lea eax, [esp + 0x1b0]
push eax
call fcn.00523fb0
mov ecx, dword [ebx + 0x5c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], 2
jmp 0x4d03da
test dword [ebx], 0x400
je 0x4d03da
mov dword [esp + 0x30], edi
test ebp, ebp
je 0x4d03ec
mov edx, dword [ebp + 0x1f4]
mov dword [esi + 0x1f4], edx
jmp 0x4d03f7
mov eax, dword [0x598e7c]
mov dword [esi + 0x1f4], eax
cmp byte [0x58b62b], 0
mov dword [esp + 0x34], 0
mov ebx, closesocket
je 0x4d0417
mov dword [esp + 0x34], 0x40000
jmp 0x4d0470
push 0x7f00
push 0
call dword [0x598df4]
mov ecx, dword [0x599194]
mov edx, dword [0x599198]
push eax
push ecx
push edx
push 0x4c2150
push str.EVERYTHING_NOTASKBAR
push 8
call fcn.004aa4a0
mov eax, dword [0x599190]
push 0
push eax
push 0
push 0
push 0x6e
push 0x6e
push 0
push 0
push ebx
push 0x551656
push str.EVERYTHING_NOTASKBAR
push 0x80
call fcn.004aa5f0
mov dword [esi + 0x5c], eax
cmp byte [0x599150], 0
je 0x4d0481
or dword [esp + 0x34], 0x400000
cmp dword [0x58b62c], 0xfe
ja 0x4d049e
cmp dword [0x599254], 0
je 0x4d049e
or dword [esp + 0x34], 0x80000
cmp dword [esp + 0x10], 0
je 0x4d0568
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.004b0670
test eax, eax
jne 0x4d0675
mov edx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.004ace30
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x60]
jle 0x4d0526
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x64]
jle 0x4d0538
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.004b0670
test eax, eax
je 0x4d0675
jmp 0x4d065d
push 2
mov dword [esp + 0x14], ebx
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edx, dword [0x58ca28]
mov ecx, dword [0x58ca10]
add ecx, edx
add ecx, dword [0x58ca08]
mov edi, eax
add ecx, dword [0x58ca00]
mov eax, 0x2aaaaaab
imul ecx, dword [0x58eee4]
imul ecx
mov eax, dword [0x58b674]
sar edx, 4
mov ecx, edx
add edi, edx
shr ecx, 0x1f
add ecx, edi
mov edi, dword [0x58b670]
test edi, edi
je 0x4d05bd
test eax, eax
jne 0x4d05c5
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 [0x598e5c]
sub edi, dword [esp + 0x14]
sub ebp, dword [esp + 0x18]
test eax, eax
jle 0x4d0675
mov edx, dword [0x598e60]
test edx, edx
jle 0x4d0675
mov edi, dword [0x598e58]
mov ecx, dword [0x598e54]
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.004b0670
test eax, eax
jne 0x4d065d
cmp byte [0x58b628], al
je 0x4d065d
push edi
lea eax, [esp + 0x18]
push eax
call fcn.004b05f0
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.00523650
push str.EVERYTHING
lea ecx, [esp + 0xa0]
push ecx
call fcn.00523fb0
call fcn.004a3a20
test eax, eax
je 0x4d06da
call fcn.004a3a20
push eax
lea edx, [esp + 0xa0]
push 0x56d63c
push edx
call fcn.00524610
add esp, 0xc
push 0x7f00
push 0
call dword [0x598df4]
mov ecx, dword [0x599198]
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [0x599194]
push eax
push ecx
push 0x4cdd80
push edx
push 8
call fcn.004aa4a0
mov eax, dword [0x599190]
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 0x551656
push eax
push ecx
call fcn.004aa5f0
lea edx, [esp + 0x9c]
push edx
mov dword [esi + 0x60], eax
call fcn.00401210
mov eax, dword [esi + 0x60]
push esi
push eax
call fcn.004ac9b0
push 0x7f00
push 0
call dword [0x598df4]
push eax
push 0
push 0
push 0x4c80d0
push str.EVERYTHING_TOOLBAR
push 8
call fcn.004aa4a0
mov ecx, dword [0x599190]
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 0x551656
push str.EVERYTHING_TOOLBAR
sbb eax, eax
and eax, 0x400000
push eax
call fcn.004aa5f0
push esi
push eax
mov dword [esi + 0x64], eax
call fcn.004ac9b0
push esi
call fcn.004cf8f0
xor edi, edi
call dword [0x58ef50]
test eax, eax
je 0x4d07dc
call dword [0x58ef54]
test eax, eax
jne 0x4d07e1
mov edi, 0x200
mov ecx, dword [0x599190]
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 0x551656
push str.SysListView32
sbb eax, eax
and eax, 0x400000
or eax, edi
push eax
call fcn.004aa5f0
push esi
push eax
mov dword [esi + 0x2e4], eax
call fcn.004ac9b0
mov ecx, dword [esi + 0x2e4]
push 0x4f91f0
push ecx
call fcn.004ac9d0
mov cl, byte [esi + 0x184]
push ebp
mov dword [esi + 0x78], eax
mov edx, dword [0x599190]
mov eax, dword [esi + 0x2e4]
push edx
push 0x2719
push eax
push ebp
push ebp
push ebp
neg cl
push ebp
push 0x560000c2
push 0x551656
push str.SysHeader32
sbb ecx, ecx
and ecx, 0x400000
push ecx
call fcn.004aa5f0
cmp dword [esi + 0x354], ebp
mov dword [esi + 0x6c], eax
je 0x4d088f
push ebp
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [esi + 0x6c]
push esi
push edx
call fcn.004ac9b0
mov eax, dword [esi + 0x6c]
push 0x4c53d0
push eax
call fcn.004ac9d0
mov dword [esi + 0x74], eax
mov eax, dword [esp + 0x40]
cmp eax, ebp
je 0x4d08ba
cmp dword [eax + 0x80], ebp
jmp 0x4d08c1
cmp byte [0x58b70d], 0
je 0x4d08ca
push 1
call fcn.004cacb0
call dword [sym.imp.USER32.dll_CreateMenu]
mov dword [esi + 0x58], eax
mov ecx, dword [0x58eedc]
mov edx, dword [ecx + 0x1e4]
push 0x2711
push edx
push eax
call fcn.004a9260
mov eax, dword [0x58eedc]
mov ecx, dword [eax + 0x1e8]
mov edx, dword [esi + 0x58]
push 0x2712
push ecx
push edx
call fcn.004a9260
mov eax, dword [0x58eedc]
mov ecx, dword [eax + 0x754]
mov edx, dword [esi + 0x58]
push 0x271d
push ecx
push edx
call fcn.004a9260
mov eax, dword [0x58eedc]
mov ecx, dword [eax + 0x1ec]
mov edx, dword [esi + 0x58]
push 0x2713
push ecx
push edx
call fcn.004a9260
mov eax, dword [0x58eedc]
mov ecx, dword [eax + 0xa2c]
mov edx, dword [esi + 0x58]
push 0x2725
push ecx
push edx
call fcn.004a9260
mov eax, dword [0x58eedc]
mov ecx, dword [eax + 0x1f0]
mov edx, dword [esi + 0x58]
push 0x2714
push ecx
push edx
call fcn.004a9260
mov eax, dword [0x58eedc]
mov ecx, dword [eax + 0x1f4]
mov edx, dword [esi + 0x58]
push 0x2715
push ecx
push edx
call fcn.004a9260
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.004e59f0
call fcn.004cbad0
call fcn.004cb9d0
push str.initheader_n
call fcn.0048f080
mov ecx, dword [0x599094]
add esp, 4
mov dword [esp + 0x10], ebp
lea edi, [esp + 0xa4]
cmp dword [esp + 0x40], 0
mov dword [edi - 4], ebp
je 0x4d0a00
mov ebx, dword [esp + 0x40]
push ebp
push ebx
call fcn.004ecd30
push ebp
push ebx
mov dword [edi], eax
call fcn.004ecc30
mov edx, dword [esp + 0x40]
push ebp
push edx
mov dword [edi + 4], eax
lea ebx, [edi - 8]
call fcn.004ecc80
mov ecx, dword [0x599094]
mov dword [ebx], eax
mov eax, dword [esp + 0x10]
jmp 0x4d0a19
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 0x4d09c3
push 0x4c1e90
push 0xd
lea eax, [esp + 0x70]
push eax
call fcn.004b44d0
mov ebp, dword [0x598e24]
xor ebx, ebx
lea ebx, [ebx]
mov eax, dword [esp + ebx*4 + 0x68]
cmp dword [eax + 4], 0
je 0x4d0a60
cmp dword [eax + 8], 0
je 0x4d0a82
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.004ed070
add ebx, 1
cmp ebx, 0xd
jl 0x4d0a50
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.004aea20
push esi
call fcn.004c2660
push str.initsearch_n
call fcn.0048f080
mov edx, dword [esi + 0x180]
mov eax, dword [esi + 0x68]
movsx edi, byte [0x58b70f]
add esp, 4
push edx
push eax
mov dword [esi + 0x1f8], 1
call fcn.004aa2e0
mov eax, edi
sub eax, 0
mov dword [esi + 0x1f8], 0
je 0x4d0b1c
sub eax, 2
je 0x4d0b13
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d0b1c
mov edx, dword [esi + 0x68]
push edx
call fcn.004b00d0
cmp dword [esi + 0x2cc], 2
jne 0x4d0b38
mov eax, dword [esi + 0x180]
movzx ecx, byte [eax]
mov edx, dword [esi + 0x60]
push ecx
push edx
call fcn.004af310
push str.parts_n
call fcn.0048f080
add esp, 4
push esi
call fcn.004c5f80
cmp dword [esp + 0x4c], 0
je 0x4d0b5b
push 1
mov eax, esi
call fcn.004cabb0
cmp dword [esp + 0x50], 0
je 0x4d0b6a
push 1
push esi
call fcn.00510960
push str.setmode_n
call fcn.0048f080
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.004c32c0
mov eax, dword [esp + 0x28]
cmp eax, dword [esi + 0x2cc]
je 0x4d0bd2
mov dword [esi + 0x2cc], eax
sub eax, 0
je 0x4d0bc7
sub eax, 1
je 0x4d0bbf
sub eax, 1
jne 0x4d0bd2
mov ecx, dword [esi + 0x180]
movzx edx, byte [ecx]
mov eax, dword [esi + 0x60]
push edx
push eax
jmp 0x4d0bcd
mov ecx, dword [esi + 0x60]
push 1
push ecx
jmp 0x4d0bcd
mov edx, dword [esi + 0x60]
push 0
push edx
call fcn.004af310
push str.size_n
call fcn.0048f080
add esp, 4
push esi
call fcn.004c92d0
mov ecx, dword [0x58b62c]
cmp ecx, 0xfe
ja 0x4d0c07
mov eax, dword [0x599254]
test eax, eax
je 0x4d0c07
push 2
push ecx
mov ecx, dword [esi + 0x60]
push 0
push ecx
call eax
push 0x571060
call fcn.0048f080
add esp, 4
test edi, edi
je 0x4d0c20
mov edx, dword [esi + 0x60]
push 7
push edx
jmp 0x4d0c32
test ebx, ebx
je 0x4d0c2c
mov eax, dword [esi + 0x60]
push 3
push eax
jmp 0x4d0c32
mov ecx, dword [esi + 0x60]
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
push str.redraw_n
call fcn.0048f080
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 0x4d0cff
mov eax, dword [esi + 0x60]
push eax
call fcn.004b32f0
push str.enter_setfocus_n
call fcn.0048f080
add esp, 4
cmp dword [esp + 0x48], 0
je 0x4d0cce
movsx eax, byte [0x58b70e]
sub eax, 0
je 0x4d0cae
sub eax, 2
je 0x4d0ca5
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d0cae
mov edx, dword [esi + 0x68]
push edx
call fcn.004b00d0
mov eax, dword [esi + 0x68]
push eax
call edi
test eax, eax
jne 0x4d0cff
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.unable_to_set_focus__u_n
call fcn.0048f080
add esp, 8
jmp 0x4d0cff
movsx eax, byte [0x58b70f]
sub eax, 0
je 0x4d0cf9
sub eax, 2
je 0x4d0cf0
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d0cf9
mov edx, dword [esi + 0x68]
push edx
call fcn.004b00d0
mov eax, dword [esi + 0x68]
push eax
call edi
push str.leave_setfocus_n
call fcn.0048f080
mov ebx, dword [esp + 0x58]
add esp, 4
xor edi, edi
test ebx, ebx
je 0x4d0d39
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x4d0d39
mov ecx, dword [0x598e40]
push eax
push ecx
call fcn.004033c0
mov edi, eax
test edi, edi
je 0x4d0d39
test dword [edi + 8], 0x8000
jne 0x4d0db0
mov eax, dword [esp + 0x30]
sub eax, 1
je 0x4d0d6e
sub eax, 1
je 0x4d0d54
mov edx, dword [esp + 0x24]
push edx
push esi
call fcn.005124f0
jmp 0x4d0db0
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.005126d0
jmp 0x4d0db0
lea eax, [esp + 0x9c]
push eax
call fcn.00523650
mov ecx, dword [esp + 0x2c4]
push ecx
lea edx, [esp + 0xa0]
push edx
call fcn.00526590
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xa4]
push eax
push ecx
push esi
call fcn.00512540
lea edx, [esp + 0x9c]
push edx
call fcn.00401210
test edi, edi
je 0x4d0db9
call fcn.004cc760
test ebx, ebx
je 0x4d0e6d
mov edi, dword [ebx + 0x50]
test edi, edi
je 0x4d0e23
push esi
call fcn.00511730
test eax, eax
push edi
je 0x4d0e0f
push esi
call fcn.00511800
mov edi, eax
cmp edi, 0xffffffff
je 0x4d0e6d
push 1
push 1
push 1
push 0
push 1
push 1
push edi
push esi
call fcn.004f7390
push 0
push edi
push esi
call fcn.004f6a10
mov eax, dword [esi + 0x2e4]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x4d0e6d
mov ecx, dword [esi + 0x1dc]
push ecx
call fcn.00522ff0
mov dword [esi + 0x1dc], eax
jmp 0x4d0e6d
mov eax, dword [ebx + 0x7c]
test eax, eax
je 0x4d0e6d
add eax, 0xffffffff
xor edi, edi
cmp eax, 3
ja case.default.0x4d0e34
jmp dword [eax*4 + 0x4d0ebc]
mov edi, 1
jmp case.default.0x4d0e34
mov edi, 2
jmp case.default.0x4d0e34
mov edi, 5
jmp case.default.0x4d0e34
mov edi, 6
mov edx, dword [esi + 0x2e4]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
test edi, edi
je 0x4d0e6d
push edi
push esi
call fcn.004f8070
lea eax, [esp + 0x1ac]
push eax
mov dword [esi + 0x12c], 1
call fcn.00401210
lea ecx, [esp + 0x2bc]
push ecx
call fcn.00401210
push ebx
push str.ui_create_leave__p_n
call fcn.0048f080
add esp, 8
mov ecx, dword [esp + 0x3cc]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005498fd
add esp, 0x3c0
ret 0xc