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

Disassembly:
sub esp, 0x3c0
mov eax, dword [0x597f98]
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 [0x598ef2], 0
je 0x4cfa71
test ebp, ebp
jne 0x4cfa71
mov esi, dword [0x59930c]
test esi, esi
je 0x4cfa71
mov edi, dword [sym.imp.USER32.dll_IsWindowVisible]
lea ebx, [ebx]
cmp dword [esi + 0x12c], 0
je 0x4cfa67
mov eax, dword [esi + 0x60]
push eax
call edi
test eax, eax
je 0x4cfc08
mov esi, dword [esi + 0x124]
test esi, esi
jne 0x4cfa50
lea edx, [esp + 0x2bc]
push edx
call fcn.00401210
lea eax, [esp + 0x1ac]
push eax
call fcn.00401210
mov eax, 1
push 0x480
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x28], eax
call fcn.004a47f0
push 0x480
mov esi, eax
push 0
push esi
call fcn.00549fc0
mov eax, dword [0x59930c]
add esp, 0xc
test eax, eax
je 0x4cfac7
mov dword [eax + 0x128], esi
cmp dword [0x599310], 0
mov dword [esi + 0x124], eax
mov dword [esi + 0x128], 0
mov dword [0x59930c], esi
jne 0x4cfaec
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], 0x5726b0
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.004bebf0
lea edx, [esi + 0x3a0]
push edx
call fcn.004a8b70
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 0x4cff41
cmp byte [0x598ed7], 0
mov dword [esp + 0x10], ebp
je 0x4cfc2a
mov dl, byte [0x598e6a]
mov byte [esi + 0x178], dl
jmp 0x4cfc36
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.004ccfd0
jmp 0x4d0ebf
mov al, byte [ebp + 0x178]
mov byte [esi + 0x178], al
cmp byte [0x598ed9], 0
je 0x4cfc4d
mov cl, byte [0x598e69]
mov byte [esi + 0x17a], cl
jmp 0x4cfc59
mov dl, byte [ebp + 0x17a]
mov byte [esi + 0x17a], dl
cmp byte [0x598ed8], 0
je 0x4cfc6f
mov al, byte [0x598e68]
mov byte [esi + 0x179], al
jmp 0x4cfc7b
mov cl, byte [ebp + 0x179]
mov byte [esi + 0x179], cl
cmp byte [0x598eda], 0
je 0x4cfc92
mov dl, byte [0x598e6b]
mov byte [esi + 0x17c], dl
jmp 0x4cfc9e
mov al, byte [ebp + 0x17c]
mov byte [esi + 0x17c], al
cmp byte [0x598edb], 0
je 0x4cfcb5
mov cl, byte [0x598e6c]
mov byte [esi + 0x17b], cl
jmp 0x4cfcc1
mov dl, byte [ebp + 0x17b]
mov byte [esi + 0x17b], dl
cmp byte [0x58b67c], 0
je 0x4cfcd2
mov eax, dword [0x598f1c]
push eax
jmp 0x4cfcd9
mov ecx, dword [ebp + 0x180]
push ecx
call fcn.0051c5d0
mov dword [esi + 0x180], eax
cmp byte [0x598edc], 0
je 0x4cfcf6
mov edx, dword [0x598fa0]
push edx
jmp 0x4cfcfd
mov eax, dword [ebp + 0xac]
push eax
call fcn.0051c5d0
mov dword [esi + 0xac], eax
cmp byte [0x598edd], 0
je 0x4cfd6a
mov ecx, dword [0x598fd0]
push ecx
call fcn.004c4740
cmp eax, edi
mov dword [esi + 0x29c], eax
je 0x4cfd36
movsx edx, byte [0x58b6f3]
mov dword [esi + 0x2a0], edx
jmp 0x4cfd4a
mov dword [esi + 0x29c], 0xa
mov dword [esi + 0x2a0], 0
test ebx, ebx
mov dword [esp + 0x24], 0
je 0x4cfd82
cmp dword [ebx + 0x90], 0
je 0x4cfd82
mov edx, 1
mov dword [esp + 0x24], edx
jmp 0x4cfd87
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 0x4cfdd6
cmp byte [0x598e6d], 0
je 0x4cfda1
mov dword [esi + 0x354], edx
jmp 0x4cfdab
mov dword [esi + 0x354], 0
mov eax, dword [0x58b620]
mov ecx, dword [0x58b624]
cmp eax, ecx
jge 0x4cfdbc
mov eax, ecx
mov ecx, dword [0x58b628]
cmp eax, ecx
jle 0x4cfdc8
mov eax, ecx
cmp eax, edx
jge 0x4cfdce
mov eax, edx
mov dword [esi + 0x358], eax
jmp 0x4cfdee
mov eax, dword [ebp + 0x354]
mov dword [esi + 0x354], eax
mov ecx, dword [ebp + 0x358]
mov dword [esi + 0x358], ecx
cmp byte [0x58b67d], 0
je 0x4cfe36
mov eax, dword [0x598fd4]
movsx edx, byte [0x598fca]
push eax
lea ecx, [esp + 0x2c0]
push ecx
mov dword [esp + 0x38], edx
call fcn.00523f80
mov edx, dword [0x598fd8]
push edx
lea eax, [esp + 0x1b0]
push eax
call fcn.00523f80
movsx ecx, byte [0x58b6fc]
mov dword [esp + 0x38], ecx
jmp 0x4cfe9f
mov eax, dword [ebp + 0x1b4]
sub eax, 2
je 0x4cfe7d
sub eax, edx
je 0x4cfe4f
mov dword [esp + 0x30], 0
jmp 0x4cfea4
mov eax, dword [ebp + 0x1b8]
lea edx, [esp + 0x1ac]
push edx
push eax
call fcn.00490140
mov ecx, dword [ebp + 0x1b8]
push ecx
call fcn.00490940
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], 2
jmp 0x4cfe9f
mov edx, dword [ebp + 0x1b8]
push edx
call fcn.0040d100
push eax
lea eax, [esp + 0x2c0]
push eax
call fcn.00523f80
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 0x4cff20
mov eax, dword [ebp + 0x2c4]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x2cc]
mov dword [esp + 0x28], eax
jmp 0x4d014a
mov ecx, dword [ebp + 0x60]
push ecx
call fcn.004ada60
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x2cc]
mov edx, 1
mov dword [esp + 0x28], eax
jmp 0x4d014a
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 [0x58b6f4]
mov dword [esi + 0xa4], ecx
movsx edx, byte [0x58b6f2]
mov dword [esp + 0x4c], eax
mov dword [esi + 0xa8], edx
mov eax, dword [0x598fa0]
push eax
call fcn.0051c5d0
mov dword [esi + 0xac], eax
movsx ecx, byte [0x598fb8]
mov edx, dword [0x58b6f8]
mov dword [esi + 0xc8], edx
mov eax, dword [0x58b6f8]
mov dword [esp + 0x50], ecx
mov dword [esi + 0xcc], eax
mov ecx, dword [0x598fd0]
push ecx
call fcn.004c4740
cmp eax, edi
mov dword [esi + 0x29c], eax
je 0x4cfffc
movsx edx, byte [0x58b6f3]
mov dword [esi + 0x2a0], edx
jmp 0x4d0010
mov dword [esi + 0x29c], 0xa
mov dword [esi + 0x2a0], 0
cmp byte [0x598edd], 0
je 0x4d0036
test ebx, ebx
mov dword [esp + 0x24], 0
je 0x4d0036
cmp dword [ebx + 0x90], 0
je 0x4d0036
mov dword [esp + 0x24], 1
mov eax, dword [0x59930c]
push eax
call fcn.004c5040
test eax, eax
mov dword [esp + 0x10], eax
je 0x4d006d
cmp dword [eax + 0x2c8], 0
je 0x4d005a
mov ecx, dword [eax + 0x2c4]
jmp 0x4d0074
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x60]
push eax
call fcn.004ada60
mov dword [esp + 0x2c], eax
jmp 0x4d0078
movsx ecx, byte [0x598e64]
mov dword [esp + 0x2c], ecx
mov edx, dword [0x598f1c]
push edx
call fcn.0051c5d0
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.00523f80
mov eax, dword [0x598fd8]
push eax
lea ecx, [esp + 0x1b0]
push ecx
call fcn.00523f80
cmp byte [0x599150], 0
movsx edx, byte [0x58b6fc]
mov dword [esp + 0x38], edx
je 0x4d00e2
cmp byte [0x598f23], 0
sete al
mov byte [esi + 0x184], al
jmp 0x4d00ee
mov cl, byte [0x598f23]
mov byte [esi + 0x184], cl
cmp byte [0x598e6d], 1
jne 0x4d0103
mov dword [esi + 0x354], 1
jmp 0x4d010d
mov dword [esi + 0x354], 0
mov eax, dword [0x58b620]
mov ecx, dword [0x58b624]
cmp eax, ecx
jge 0x4d011e
mov eax, ecx
mov ecx, dword [0x58b628]
cmp eax, ecx
jle 0x4d012a
mov eax, ecx
cmp eax, 1
jge 0x4d0134
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 0x4d0183
cmp eax, 2
je 0x4d017d
cmp eax, 6
je 0x4d017d
cmp eax, 7
jne 0x4d0187
mov dword [esp + 0x3c], edx
jmp 0x4d0187
mov dword [esp + 0x2c], edx
test ebx, ebx
mov ecx, 0x8000
je 0x4d03fa
mov eax, dword [ebx + 4]
test eax, 0x200
je 0x4d01a4
mov dword [esp + 0x2c], edx
jmp 0x4d01b5
test dword [ebx + 8], 0x200
je 0x4d01b5
mov dword [esp + 0x2c], 0
test eax, 0x400
je 0x4d01c2
mov dword [esp + 0x3c], edx
jmp 0x4d01d3
test dword [ebx + 8], 0x400
je 0x4d01d3
mov dword [esp + 0x3c], 0
test eax, 0x800
je 0x4d01e0
mov dword [esp + 0x44], edx
jmp 0x4d01f1
test dword [ebx + 8], 0x800
je 0x4d01f1
mov dword [esp + 0x44], 0
test eax, 0x200000
je 0x4d01fe
mov dword [esp + 0x28], edx
jmp 0x4d020f
test dword [ebx + 8], 0x200000
je 0x4d020f
mov dword [esp + 0x28], 0
test eax, 0x1000
je 0x4d021f
mov byte [esi + 0x17b], 1
jmp 0x4d022f
test dword [ebx + 8], 0x1000
je 0x4d022f
mov byte [esi + 0x17b], 0
mov eax, 0x2000
test dword [ebx + 4], eax
je 0x4d0242
mov byte [esi + 0x178], 1
jmp 0x4d024e
test dword [ebx + 8], eax
je 0x4d024e
mov byte [esi + 0x178], 0
mov eax, 0x4000
test dword [ebx + 4], eax
je 0x4d0261
mov byte [esi + 0x179], 1
jmp 0x4d026d
test dword [ebx + 8], eax
je 0x4d026d
mov byte [esi + 0x179], 0
test dword [ebx + 4], ecx
je 0x4d027b
mov byte [esi + 0x17a], 1
jmp 0x4d0287
test dword [ebx + 8], ecx
je 0x4d0287
mov byte [esi + 0x17a], 0
mov eax, 0x10000
test dword [ebx + 4], eax
je 0x4d029a
mov byte [esi + 0x17c], 1
jmp 0x4d02a6
test dword [ebx + 8], eax
je 0x4d02a6
mov byte [esi + 0x17c], 0
mov eax, dword [ebx]
test eax, 0x80000
je 0x4d02bb
mov dword [esi + 0x354], 0
jmp 0x4d02c8
test eax, 0x100000
je 0x4d02c8
mov dword [esi + 0x354], edx
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x4d02f3
mov ecx, dword [0x58b624]
cmp eax, ecx
jge 0x4d02db
mov eax, ecx
mov ecx, dword [0x58b628]
cmp eax, ecx
jle 0x4d02e7
mov eax, ecx
cmp eax, edx
jge 0x4d02ed
mov eax, edx
mov dword [esi + 0x358], eax
cmp dword [ebx + 0x90], 0
je 0x4d034e
lea eax, [esp + 0x9c]
push eax
call fcn.00401210
movsx ecx, byte [esi + 0x17b]
push ebx
push ecx
lea edx, [esp + 0xa4]
push edx
call fcn.00405d90
mov eax, dword [esp + 0xa4]
mov ecx, dword [esi + 0x180]
push eax
push ecx
call fcn.00522fe0
lea edx, [esp + 0x9c]
push edx
mov dword [esi + 0x180], eax
mov dword [esp + 0x4c], 0
call fcn.00401230
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4d0368
push eax
mov eax, dword [esi + 0xac]
push eax
call fcn.00522fe0
mov dword [esi + 0xac], eax
mov eax, dword [ebx + 0x70]
cmp eax, edi
je 0x4d038f
mov dword [esi + 0x29c], eax
cmp dword [ebx + 0x6c], 0
jne 0x4d0387
push eax
call fcn.004c4780
mov dword [esi + 0x2a0], eax
xor edi, edi
mov dword [esp + 0x24], edi
jmp 0x4d0391
xor edi, edi
mov eax, dword [ebx + 0x6c]
cmp eax, edi
je 0x4d03a9
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 0x4d03c8
push eax
lea edx, [esp + 0x2c0]
push edx
call fcn.00523f80
mov dword [esp + 0x30], 1
jmp 0x4d03fa
mov eax, dword [ebx + 0x34]
cmp eax, edi
je 0x4d03ee
push eax
lea eax, [esp + 0x1b0]
push eax
call fcn.00523f80
mov ecx, dword [ebx + 0x5c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], 2
jmp 0x4d03fa
test dword [ebx], 0x400
je 0x4d03fa
mov dword [esp + 0x30], edi
test ebp, ebp
je 0x4d040c
mov edx, dword [ebp + 0x1f4]
mov dword [esi + 0x1f4], edx
jmp 0x4d0417
mov eax, dword [0x598e7c]
mov dword [esi + 0x1f4], eax
cmp byte [0x58b61b], 0
mov dword [esp + 0x34], 0
mov ebx, closesocket
je 0x4d0437
mov dword [esp + 0x34], 0x40000
jmp 0x4d0490
push 0x7f00
push 0
call dword [0x598de4]
mov ecx, dword [0x599194]
mov edx, dword [0x599198]
push eax
push ecx
push edx
push 0x4c2160
push str.EVERYTHING_NOTASKBAR
push 8
call fcn.004aa4c0
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.004aa610
mov dword [esi + 0x5c], eax
cmp byte [0x599150], 0
je 0x4d04a1
or dword [esp + 0x34], 0x400000
cmp dword [0x58b61c], 0xfe
ja 0x4d04be
cmp dword [0x599254], 0
je 0x4d04be
or dword [esp + 0x34], 0x80000
cmp dword [esp + 0x10], 0
je 0x4d0588
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.004b06b0
test eax, eax
jne 0x4d0695
mov edx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.004ace60
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x60]
jle 0x4d0546
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x64]
jle 0x4d0558
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.004b06b0
test eax, eax
je 0x4d0695
jmp 0x4d067d
push 2
mov dword [esp + 0x14], ebx
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edx, dword [0x58ca18]
mov ecx, dword [0x58ca00]
add ecx, edx
add ecx, dword [0x58c9f8]
mov edi, eax
add ecx, dword [0x58c9f0]
mov eax, 0x2aaaaaab
imul ecx, dword [0x58eed4]
imul ecx
mov eax, dword [0x58b664]
sar edx, 4
mov ecx, edx
add edi, edx
shr ecx, 0x1f
add ecx, edi
mov edi, dword [0x58b660]
test edi, edi
je 0x4d05dd
test eax, eax
jne 0x4d05e5
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 0x4d0695
mov edx, dword [0x598e60]
test edx, edx
jle 0x4d0695
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.004b06b0
test eax, eax
jne 0x4d067d
cmp byte [0x58b618], al
je 0x4d067d
push edi
lea eax, [esp + 0x18]
push eax
call fcn.004b0630
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.00401210
push str.EVERYTHING
lea ecx, [esp + 0xa0]
push ecx
call fcn.00523f80
call fcn.004a3a60
test eax, eax
je 0x4d06fa
call fcn.004a3a60
push eax
lea edx, [esp + 0xa0]
push 0x56d61c
push edx
call fcn.005245e0
add esp, 0xc
push 0x7f00
push 0
call dword [0x598de4]
mov ecx, dword [0x599198]
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [0x599194]
push eax
push ecx
push 0x4cdda0
push edx
push 8
call fcn.004aa4c0
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.004aa610
lea edx, [esp + 0x9c]
push edx
mov dword [esi + 0x60], eax
call fcn.00401230
mov eax, dword [esi + 0x60]
push esi
push eax
call fcn.004ac9d0
push 0x7f00
push 0
call dword [0x598de4]
push eax
push 0
push 0
push 0x4c80e0
push str.EVERYTHING_TOOLBAR
push 8
call fcn.004aa4c0
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.004aa610
push esi
push eax
mov dword [esi + 0x64], eax
call fcn.004ac9d0
push esi
call fcn.004cf910
xor edi, edi
call dword [0x58ef40]
test eax, eax
je 0x4d07fc
call dword [0x58ef44]
test eax, eax
jne 0x4d0801
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.004aa610
push esi
push eax
mov dword [esi + 0x2e4], eax
call fcn.004ac9d0
mov ecx, dword [esi + 0x2e4]
push 0x4f91f0
push ecx
call fcn.004ac9f0
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.004aa610
cmp dword [esi + 0x354], ebp
mov dword [esi + 0x6c], eax
je 0x4d08af
push ebp
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [esi + 0x6c]
push esi
push edx
call fcn.004ac9d0
mov eax, dword [esi + 0x6c]
push 0x4c53e0
push eax
call fcn.004ac9f0
mov dword [esi + 0x74], eax
mov eax, dword [esp + 0x40]
cmp eax, ebp
je 0x4d08da
cmp dword [eax + 0x80], ebp
jmp 0x4d08e1
cmp byte [0x58b6fd], 0
je 0x4d08ea
push 1
call fcn.004cacd0
call dword [sym.imp.USER32.dll_CreateMenu]
mov dword [esi + 0x58], eax
mov ecx, dword [0x58eecc]
mov edx, dword [ecx + 0x1e4]
push 0x2711
push edx
push eax
call fcn.004a9280
mov eax, dword [0x58eecc]
mov ecx, dword [eax + 0x1e8]
mov edx, dword [esi + 0x58]
push 0x2712
push ecx
push edx
call fcn.004a9280
mov eax, dword [0x58eecc]
mov ecx, dword [eax + 0x754]
mov edx, dword [esi + 0x58]
push 0x271d
push ecx
push edx
call fcn.004a9280
mov eax, dword [0x58eecc]
mov ecx, dword [eax + 0x1ec]
mov edx, dword [esi + 0x58]
push 0x2713
push ecx
push edx
call fcn.004a9280
mov eax, dword [0x58eecc]
mov ecx, dword [eax + 0xa2c]
mov edx, dword [esi + 0x58]
push 0x2725
push ecx
push edx
call fcn.004a9280
mov eax, dword [0x58eecc]
mov ecx, dword [eax + 0x1f0]
mov edx, dword [esi + 0x58]
push 0x2714
push ecx
push edx
call fcn.004a9280
mov eax, dword [0x58eecc]
mov ecx, dword [eax + 0x1f4]
mov edx, dword [esi + 0x58]
push 0x2715
push ecx
push edx
call fcn.004a9280
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.004cbaf0
call fcn.004cb9f0
push str.initheader_n
call fcn.0048f0a0
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 0x4d0a20
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 0x4d0a39
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 0x4d09e3
push 0x4c1ea0
push 0xd
lea eax, [esp + 0x70]
push eax
call fcn.004b4520
mov ebp, dword [0x598e14]
xor ebx, ebx
lea ebx, [ebx]
mov eax, dword [esp + ebx*4 + 0x68]
cmp dword [eax + 4], 0
je 0x4d0a80
cmp dword [eax + 8], 0
je 0x4d0aa2
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 0x4d0a70
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.004aea50
push esi
call fcn.004c2670
push str.initsearch_n
call fcn.0048f0a0
mov edx, dword [esi + 0x180]
mov eax, dword [esi + 0x68]
movsx edi, byte [0x58b6ff]
add esp, 4
push edx
push eax
mov dword [esi + 0x1f8], 1
call fcn.004aa300
mov eax, edi
sub eax, 0
mov dword [esi + 0x1f8], 0
je 0x4d0b3c
sub eax, 2
je 0x4d0b33
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d0b3c
mov edx, dword [esi + 0x68]
push edx
call fcn.004b00f0
cmp dword [esi + 0x2cc], 2
jne 0x4d0b58
mov eax, dword [esi + 0x180]
movzx ecx, byte [eax]
mov edx, dword [esi + 0x60]
push ecx
push edx
call fcn.004af340
push str.parts_n
call fcn.0048f0a0
add esp, 4
push esi
call fcn.004c5f90
cmp dword [esp + 0x4c], 0
je 0x4d0b7b
push 1
mov eax, esi
call fcn.004cabd0
cmp dword [esp + 0x50], 0
je 0x4d0b8a
push 1
push esi
call fcn.00510960
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.004c32d0
mov eax, dword [esp + 0x28]
cmp eax, dword [esi + 0x2cc]
je 0x4d0bf2
mov dword [esi + 0x2cc], eax
sub eax, 0
je 0x4d0be7
sub eax, 1
je 0x4d0bdf
sub eax, 1
jne 0x4d0bf2
mov ecx, dword [esi + 0x180]
movzx edx, byte [ecx]
mov eax, dword [esi + 0x60]
push edx
push eax
jmp 0x4d0bed
mov ecx, dword [esi + 0x60]
push 1
push ecx
jmp 0x4d0bed
mov edx, dword [esi + 0x60]
push 0
push edx
call fcn.004af340
push str.size_n
call fcn.0048f0a0
add esp, 4
push esi
call fcn.004c92e0
mov ecx, dword [0x58b61c]
cmp ecx, 0xfe
ja 0x4d0c27
mov eax, dword [0x599254]
test eax, eax
je 0x4d0c27
push 2
push ecx
mov ecx, dword [esi + 0x60]
push 0
push ecx
call eax
push 0x571020
call fcn.0048f0a0
add esp, 4
test edi, edi
je 0x4d0c40
mov edx, dword [esi + 0x60]
push 7
push edx
jmp 0x4d0c52
test ebx, ebx
je 0x4d0c4c
mov eax, dword [esi + 0x60]
push 3
push eax
jmp 0x4d0c52
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 0x4d0d1f
mov eax, dword [esi + 0x60]
push eax
call fcn.004b3340
push str.enter_setfocus_n
call fcn.0048f0a0
add esp, 4
cmp dword [esp + 0x48], 0
je 0x4d0cee
movsx eax, byte [0x58b6fe]
sub eax, 0
je 0x4d0cce
sub eax, 2
je 0x4d0cc5
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d0cce
mov edx, dword [esi + 0x68]
push edx
call fcn.004b00f0
mov eax, dword [esi + 0x68]
push eax
call edi
test eax, eax
jne 0x4d0d1f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.unable_to_set_focus__u_n
call fcn.0048f0a0
add esp, 8
jmp 0x4d0d1f
movsx eax, byte [0x58b6ff]
sub eax, 0
je 0x4d0d19
sub eax, 2
je 0x4d0d10
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d0d19
mov edx, dword [esi + 0x68]
push edx
call fcn.004b00f0
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 0x4d0d59
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x4d0d59
mov ecx, dword [0x598e40]
push eax
push ecx
call fcn.004033e0
mov edi, eax
test edi, edi
je 0x4d0d59
test dword [edi + 8], 0x8000
jne 0x4d0dd0
mov eax, dword [esp + 0x30]
sub eax, 1
je 0x4d0d8e
sub eax, 1
je 0x4d0d74
mov edx, dword [esp + 0x24]
push edx
push esi
call fcn.00512500
jmp 0x4d0dd0
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.005126e0
jmp 0x4d0dd0
lea eax, [esp + 0x9c]
push eax
call fcn.00401210
mov ecx, dword [esp + 0x2c4]
push ecx
lea edx, [esp + 0xa0]
push edx
call fcn.00526560
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xa4]
push eax
push ecx
push esi
call fcn.00512550
lea edx, [esp + 0x9c]
push edx
call fcn.00401230
test edi, edi
je 0x4d0dd9
call fcn.004cc780
test ebx, ebx
je 0x4d0e8d
mov edi, dword [ebx + 0x50]
test edi, edi
je 0x4d0e43
push esi
call fcn.00511760
test eax, eax
push edi
je 0x4d0e2f
push esi
call fcn.00511810
mov edi, eax
cmp edi, 0xffffffff
je 0x4d0e8d
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 0x4d0e8d
mov ecx, dword [esi + 0x1dc]
push ecx
call fcn.00522fe0
mov dword [esi + 0x1dc], eax
jmp 0x4d0e8d
mov eax, dword [ebx + 0x7c]
test eax, eax
je 0x4d0e8d
add eax, 0xffffffff
xor edi, edi
cmp eax, 3
ja case.default.0x4d0e54
jmp dword [eax*4 + 0x4d0edc]
mov edi, 1
jmp case.default.0x4d0e54
mov edi, 2
jmp case.default.0x4d0e54
mov edi, 5
jmp case.default.0x4d0e54
mov edi, 6
mov edx, dword [esi + 0x2e4]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
test edi, edi
je 0x4d0e8d
push edi
push esi
call fcn.004f8070
lea eax, [esp + 0x1ac]
push eax
mov dword [esi + 0x12c], 1
call fcn.00401230
lea ecx, [esp + 0x2bc]
push ecx
call fcn.00401230
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.005498cd
add esp, 0x3c0
ret 0xc