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

Disassembly:
sub esp, 0x3c0
mov eax, dword [0x596fb8]
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 [0x597f12], 0
je 0x4cf6f1
test ebp, ebp
jne 0x4cf6f1
mov esi, dword [0x59832c]
test esi, esi
je 0x4cf6f1
mov edi, dword [sym.imp.USER32.dll_IsWindowVisible]
lea ebx, [ebx]
cmp dword [esi + 0x12c], 0
je 0x4cf6e7
mov eax, dword [esi + 0x60]
push eax
call edi
test eax, eax
je 0x4cf888
mov esi, dword [esi + 0x124]
test esi, esi
jne 0x4cf6d0
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.004a48f0
push 0x480
mov esi, eax
push 0
push esi
call fcn.00549d20
mov eax, dword [0x59832c]
add esp, 0xc
test eax, eax
je 0x4cf747
mov dword [eax + 0x128], esi
cmp dword [0x598330], 0
mov dword [esi + 0x124], eax
mov dword [esi + 0x128], 0
mov dword [0x59832c], esi
jne 0x4cf76c
mov dword [0x598330], 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], 0x571788
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.004be880
lea edx, [esi + 0x3a0]
push edx
call fcn.004b5260
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 [0x597e86]
movsx ecx, byte [0x597e85]
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], ecx
je 0x4cfbc1
cmp byte [0x597ef7], 0
mov dword [esp + 0x10], ebp
je 0x4cf8aa
mov dl, byte [0x597e8a]
mov byte [esi + 0x178], dl
jmp 0x4cf8b6
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.004cbf20
jmp 0x4d0b3f
mov al, byte [ebp + 0x178]
mov byte [esi + 0x178], al
cmp byte [0x597ef9], 0
je 0x4cf8cd
mov cl, byte [0x597e89]
mov byte [esi + 0x17a], cl
jmp 0x4cf8d9
mov dl, byte [ebp + 0x17a]
mov byte [esi + 0x17a], dl
cmp byte [0x597ef8], 0
je 0x4cf8ef
mov al, byte [0x597e88]
mov byte [esi + 0x179], al
jmp 0x4cf8fb
mov cl, byte [ebp + 0x179]
mov byte [esi + 0x179], cl
cmp byte [0x597efa], 0
je 0x4cf912
mov dl, byte [0x597e8b]
mov byte [esi + 0x17c], dl
jmp 0x4cf91e
mov al, byte [ebp + 0x17c]
mov byte [esi + 0x17c], al
cmp byte [0x597efb], 0
je 0x4cf935
mov cl, byte [0x597e8c]
mov byte [esi + 0x17b], cl
jmp 0x4cf941
mov dl, byte [ebp + 0x17b]
mov byte [esi + 0x17b], dl
cmp byte [0x58a68c], 0
je 0x4cf952
mov eax, dword [0x597f3c]
push eax
jmp 0x4cf959
mov ecx, dword [ebp + 0x180]
push ecx
call fcn.0051c1e0
mov dword [esi + 0x180], eax
cmp byte [0x597efc], 0
je 0x4cf976
mov edx, dword [0x597fc0]
push edx
jmp 0x4cf97d
mov eax, dword [ebp + 0xac]
push eax
call fcn.0051c1e0
mov dword [esi + 0xac], eax
cmp byte [0x597efd], 0
je 0x4cf9ea
mov ecx, dword [0x597ff0]
push ecx
call fcn.004c43e0
cmp eax, edi
mov dword [esi + 0x29c], eax
je 0x4cf9b6
movsx edx, byte [0x58a70c]
mov dword [esi + 0x2a0], edx
jmp 0x4cf9ca
mov dword [esi + 0x29c], 0xa
mov dword [esi + 0x2a0], 0
test ebx, ebx
mov dword [esp + 0x24], 0
je 0x4cfa02
cmp dword [ebx + 0x90], 0
je 0x4cfa02
mov edx, 1
mov dword [esp + 0x24], edx
jmp 0x4cfa07
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 [0x597efe], 0
je 0x4cfa56
cmp byte [0x597e8d], 0
je 0x4cfa21
mov dword [esi + 0x354], edx
jmp 0x4cfa2b
mov dword [esi + 0x354], 0
mov eax, dword [0x58a630]
mov ecx, dword [0x58a634]
cmp eax, ecx
jge 0x4cfa3c
mov eax, ecx
mov ecx, dword [0x58a638]
cmp eax, ecx
jle 0x4cfa48
mov eax, ecx
cmp eax, edx
jge 0x4cfa4e
mov eax, edx
mov dword [esi + 0x358], eax
jmp 0x4cfa6e
mov eax, dword [ebp + 0x354]
mov dword [esi + 0x354], eax
mov ecx, dword [ebp + 0x358]
mov dword [esi + 0x358], ecx
cmp byte [0x58a68d], 0
je 0x4cfab6
mov eax, dword [0x597ff4]
movsx edx, byte [0x597fea]
push eax
lea ecx, [esp + 0x2c0]
push ecx
mov dword [esp + 0x38], edx
call fcn.00523b80
mov edx, dword [0x597ff8]
push edx
lea eax, [esp + 0x1b0]
push eax
call fcn.00523b80
movsx ecx, byte [0x58a70d]
mov dword [esp + 0x38], ecx
jmp 0x4cfb1f
mov eax, dword [ebp + 0x1b4]
sub eax, 2
je 0x4cfafd
sub eax, edx
je 0x4cfacf
mov dword [esp + 0x30], 0
jmp 0x4cfb24
mov eax, dword [ebp + 0x1b8]
lea edx, [esp + 0x1ac]
push edx
push eax
call fcn.00490120
mov ecx, dword [ebp + 0x1b8]
push ecx
call fcn.00490920
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], 2
jmp 0x4cfb1f
mov edx, dword [ebp + 0x1b8]
push edx
call fcn.0040d0c0
push eax
lea eax, [esp + 0x2c0]
push eax
call fcn.00523b80
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 0x4cfba0
mov eax, dword [ebp + 0x2c4]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x2cc]
mov dword [esp + 0x28], eax
jmp 0x4cfdca
mov ecx, dword [ebp + 0x60]
push ecx
call fcn.004ad700
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x2cc]
mov edx, 1
mov dword [esp + 0x28], eax
jmp 0x4cfdca
movzx ecx, byte [0x597e8a]
mov byte [esi + 0x178], cl
movzx edx, byte [0x597e89]
mov byte [esi + 0x17a], dl
mov al, byte [0x597e88]
mov byte [esi + 0x179], al
movzx ecx, byte [0x597e8b]
mov byte [esi + 0x17c], cl
movzx edx, byte [0x597e8c]
mov byte [esi + 0x17b], dl
movsx eax, byte [0x597fbe]
mov ecx, dword [0x58a704]
mov dword [esi + 0xa4], ecx
movsx edx, byte [0x58a703]
mov dword [esp + 0x4c], eax
mov dword [esi + 0xa8], edx
mov eax, dword [0x597fc0]
push eax
call fcn.0051c1e0
mov dword [esi + 0xac], eax
movsx ecx, byte [0x597fd8]
mov edx, dword [0x58a708]
mov dword [esi + 0xc8], edx
mov eax, dword [0x58a708]
mov dword [esp + 0x50], ecx
mov dword [esi + 0xcc], eax
mov ecx, dword [0x597ff0]
push ecx
call fcn.004c43e0
cmp eax, edi
mov dword [esi + 0x29c], eax
je 0x4cfc7c
movsx edx, byte [0x58a70c]
mov dword [esi + 0x2a0], edx
jmp 0x4cfc90
mov dword [esi + 0x29c], 0xa
mov dword [esi + 0x2a0], 0
cmp byte [0x597efd], 0
je 0x4cfcb6
test ebx, ebx
mov dword [esp + 0x24], 0
je 0x4cfcb6
cmp dword [ebx + 0x90], 0
je 0x4cfcb6
mov dword [esp + 0x24], 1
mov eax, dword [0x59832c]
push eax
call fcn.004c4ce0
test eax, eax
mov dword [esp + 0x10], eax
je 0x4cfced
cmp dword [eax + 0x2c8], 0
je 0x4cfcda
mov ecx, dword [eax + 0x2c4]
jmp 0x4cfcf4
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x60]
push eax
call fcn.004ad700
mov dword [esp + 0x2c], eax
jmp 0x4cfcf8
movsx ecx, byte [0x597e84]
mov dword [esp + 0x2c], ecx
mov edx, dword [0x597f3c]
push edx
call fcn.0051c1e0
mov dword [esi + 0x180], eax
mov ecx, dword [0x597ff4]
movsx eax, byte [0x597fea]
push ecx
lea edx, [esp + 0x2c0]
push edx
mov dword [esp + 0x38], eax
call fcn.00523b80
mov eax, dword [0x597ff8]
push eax
lea ecx, [esp + 0x1b0]
push ecx
call fcn.00523b80
cmp byte [0x598170], 0
movsx edx, byte [0x58a70d]
mov dword [esp + 0x38], edx
je 0x4cfd62
cmp byte [0x597f43], 0
sete al
mov byte [esi + 0x184], al
jmp 0x4cfd6e
mov cl, byte [0x597f43]
mov byte [esi + 0x184], cl
cmp byte [0x597e8d], 1
jne 0x4cfd83
mov dword [esi + 0x354], 1
jmp 0x4cfd8d
mov dword [esi + 0x354], 0
mov eax, dword [0x58a630]
mov ecx, dword [0x58a634]
cmp eax, ecx
jge 0x4cfd9e
mov eax, ecx
mov ecx, dword [0x58a638]
cmp eax, ecx
jle 0x4cfdaa
mov eax, ecx
cmp eax, 1
jge 0x4cfdb4
mov eax, 1
mov dword [esi + 0x358], eax
movsx edx, byte [0x597e87]
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 0x4cfe03
cmp eax, 2
je 0x4cfdfd
cmp eax, 6
je 0x4cfdfd
cmp eax, 7
jne 0x4cfe07
mov dword [esp + 0x3c], edx
jmp 0x4cfe07
mov dword [esp + 0x2c], edx
test ebx, ebx
mov ecx, 0x8000
je 0x4d007a
mov eax, dword [ebx + 4]
test eax, 0x200
je 0x4cfe24
mov dword [esp + 0x2c], edx
jmp 0x4cfe35
test dword [ebx + 8], 0x200
je 0x4cfe35
mov dword [esp + 0x2c], 0
test eax, 0x400
je 0x4cfe42
mov dword [esp + 0x3c], edx
jmp 0x4cfe53
test dword [ebx + 8], 0x400
je 0x4cfe53
mov dword [esp + 0x3c], 0
test eax, 0x800
je 0x4cfe60
mov dword [esp + 0x44], edx
jmp 0x4cfe71
test dword [ebx + 8], 0x800
je 0x4cfe71
mov dword [esp + 0x44], 0
test eax, 0x200000
je 0x4cfe7e
mov dword [esp + 0x28], edx
jmp 0x4cfe8f
test dword [ebx + 8], 0x200000
je 0x4cfe8f
mov dword [esp + 0x28], 0
test eax, 0x1000
je 0x4cfe9f
mov byte [esi + 0x17b], 1
jmp 0x4cfeaf
test dword [ebx + 8], 0x1000
je 0x4cfeaf
mov byte [esi + 0x17b], 0
mov eax, 0x2000
test dword [ebx + 4], eax
je 0x4cfec2
mov byte [esi + 0x178], 1
jmp 0x4cfece
test dword [ebx + 8], eax
je 0x4cfece
mov byte [esi + 0x178], 0
mov eax, 0x4000
test dword [ebx + 4], eax
je 0x4cfee1
mov byte [esi + 0x179], 1
jmp 0x4cfeed
test dword [ebx + 8], eax
je 0x4cfeed
mov byte [esi + 0x179], 0
test dword [ebx + 4], ecx
je 0x4cfefb
mov byte [esi + 0x17a], 1
jmp 0x4cff07
test dword [ebx + 8], ecx
je 0x4cff07
mov byte [esi + 0x17a], 0
mov eax, 0x10000
test dword [ebx + 4], eax
je 0x4cff1a
mov byte [esi + 0x17c], 1
jmp 0x4cff26
test dword [ebx + 8], eax
je 0x4cff26
mov byte [esi + 0x17c], 0
mov eax, dword [ebx]
test eax, 0x80000
je 0x4cff3b
mov dword [esi + 0x354], 0
jmp 0x4cff48
test eax, 0x100000
je 0x4cff48
mov dword [esi + 0x354], edx
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x4cff73
mov ecx, dword [0x58a634]
cmp eax, ecx
jge 0x4cff5b
mov eax, ecx
mov ecx, dword [0x58a638]
cmp eax, ecx
jle 0x4cff67
mov eax, ecx
cmp eax, edx
jge 0x4cff6d
mov eax, edx
mov dword [esi + 0x358], eax
cmp dword [ebx + 0x90], 0
je 0x4cffce
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.00405d70
mov eax, dword [esp + 0xa4]
mov ecx, dword [esi + 0x180]
push eax
push ecx
call fcn.00522bf0
lea edx, [esp + 0x9c]
push edx
mov dword [esi + 0x180], eax
mov dword [esp + 0x4c], 0
call fcn.00523250
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4cffe8
push eax
mov eax, dword [esi + 0xac]
push eax
call fcn.00522bf0
mov dword [esi + 0xac], eax
mov eax, dword [ebx + 0x70]
cmp eax, edi
je 0x4d000f
mov dword [esi + 0x29c], eax
cmp dword [ebx + 0x6c], 0
jne 0x4d0007
push eax
call fcn.004c4420
mov dword [esi + 0x2a0], eax
xor edi, edi
mov dword [esp + 0x24], edi
jmp 0x4d0011
xor edi, edi
mov eax, dword [ebx + 0x6c]
cmp eax, edi
je 0x4d0029
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 0x4d0048
push eax
lea edx, [esp + 0x2c0]
push edx
call fcn.00523b80
mov dword [esp + 0x30], 1
jmp 0x4d007a
mov eax, dword [ebx + 0x34]
cmp eax, edi
je 0x4d006e
push eax
lea eax, [esp + 0x1b0]
push eax
call fcn.00523b80
mov ecx, dword [ebx + 0x5c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], 2
jmp 0x4d007a
test dword [ebx], 0x400
je 0x4d007a
mov dword [esp + 0x30], edi
test ebp, ebp
je 0x4d008c
mov edx, dword [ebp + 0x1f4]
mov dword [esi + 0x1f4], edx
jmp 0x4d0097
mov eax, dword [0x597e9c]
mov dword [esi + 0x1f4], eax
cmp byte [0x58a62b], 0
mov dword [esp + 0x34], 0
mov ebx, closesocket
je 0x4d00b7
mov dword [esp + 0x34], 0x40000
jmp 0x4d0110
push 0x7f00
push 0
call dword [0x597e04]
mov ecx, dword [0x5981b4]
mov edx, dword [0x5981b8]
push eax
push ecx
push edx
push 0x4c1e10
push str.EVERYTHING_NOTASKBAR
push 8
call fcn.004aa140
mov eax, dword [0x5981b0]
push 0
push eax
push 0
push 0
push 0x6e
push 0x6e
push 0
push 0
push ebx
push 0x55065e
push str.EVERYTHING_NOTASKBAR
push 0x80
call fcn.004aa290
mov dword [esi + 0x5c], eax
cmp byte [0x598170], 0
je 0x4d0121
or dword [esp + 0x34], 0x400000
cmp dword [0x58a62c], 0xfe
ja 0x4d013e
cmp dword [0x598274], 0
je 0x4d013e
or dword [esp + 0x34], 0x80000
cmp dword [esp + 0x10], 0
je 0x4d0208
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.004b03a0
test eax, eax
jne 0x4d0315
mov edx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.004acaf0
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x60]
jle 0x4d01c6
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x64]
jle 0x4d01d8
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.004b03a0
test eax, eax
je 0x4d0315
jmp 0x4d02fd
push 2
mov dword [esp + 0x14], ebx
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edx, dword [0x58ba38]
mov ecx, dword [0x58ba20]
add ecx, edx
add ecx, dword [0x58ba18]
mov edi, eax
add ecx, dword [0x58ba10]
mov eax, 0x2aaaaaab
imul ecx, dword [0x58def4]
imul ecx
mov eax, dword [0x58a674]
sar edx, 4
mov ecx, edx
add edi, edx
shr ecx, 0x1f
add ecx, edi
mov edi, dword [0x58a670]
test edi, edi
je 0x4d025d
test eax, eax
jne 0x4d0265
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 [0x597e7c]
sub edi, dword [esp + 0x14]
sub ebp, dword [esp + 0x18]
test eax, eax
jle 0x4d0315
mov edx, dword [0x597e80]
test edx, edx
jle 0x4d0315
mov edi, dword [0x597e78]
mov ecx, dword [0x597e74]
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.004b03a0
test eax, eax
jne 0x4d02fd
cmp byte [0x58a628], al
je 0x4d02fd
push edi
lea eax, [esp + 0x18]
push eax
call fcn.004b0320
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.00523b80
call fcn.004a3a20
test eax, eax
je 0x4d037a
call fcn.004a3a20
push eax
lea edx, [esp + 0xa0]
push 0x56c744
push edx
call fcn.005241e0
add esp, 0xc
push 0x7f00
push 0
call dword [0x597e04]
mov ecx, dword [0x5981b8]
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [0x5981b4]
push eax
push ecx
push 0x4cda20
push edx
push 8
call fcn.004aa140
mov eax, dword [0x5981b0]
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 0x55065e
push eax
push ecx
call fcn.004aa290
lea edx, [esp + 0x9c]
push edx
mov dword [esi + 0x60], eax
call fcn.00523250
mov eax, dword [esi + 0x60]
push esi
push eax
call fcn.004ac650
push 0x7f00
push 0
call dword [0x597e04]
push eax
push 0
push 0
push 0x4c7d80
push str.EVERYTHING_TOOLBAR
push 8
call fcn.004aa140
mov ecx, dword [0x5981b0]
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 0x55065e
push str.EVERYTHING_TOOLBAR
sbb eax, eax
and eax, 0x400000
push eax
call fcn.004aa290
push esi
push eax
mov dword [esi + 0x64], eax
call fcn.004ac650
push esi
call fcn.004cf590
xor edi, edi
call dword [0x58df60]
test eax, eax
je 0x4d047c
call dword [0x58df64]
test eax, eax
jne 0x4d0481
mov edi, 0x200
mov ecx, dword [0x5981b0]
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 0x55065e
push str.SysListView32
sbb eax, eax
and eax, 0x400000
or eax, edi
push eax
call fcn.004aa290
push esi
push eax
mov dword [esi + 0x2e4], eax
call fcn.004ac650
mov ecx, dword [esi + 0x2e4]
push 0x4f8ea0
push ecx
call fcn.004ac670
mov cl, byte [esi + 0x184]
push ebp
mov dword [esi + 0x78], eax
mov edx, dword [0x5981b0]
mov eax, dword [esi + 0x2e4]
push edx
push 0x2719
push eax
push ebp
push ebp
push ebp
neg cl
push ebp
push 0x560000c2
push 0x55065e
push str.SysHeader32
sbb ecx, ecx
and ecx, 0x400000
push ecx
call fcn.004aa290
cmp dword [esi + 0x354], ebp
mov dword [esi + 0x6c], eax
je 0x4d052f
push ebp
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [esi + 0x6c]
push esi
push edx
call fcn.004ac650
mov eax, dword [esi + 0x6c]
push 0x4c5080
push eax
call fcn.004ac670
mov dword [esi + 0x74], eax
mov eax, dword [esp + 0x40]
cmp eax, ebp
je 0x4d055a
cmp dword [eax + 0x80], ebp
jmp 0x4d0561
cmp byte [0x58a70e], 0
je 0x4d056a
push 1
call fcn.004cac80
call dword [sym.imp.USER32.dll_CreateMenu]
mov dword [esi + 0x58], eax
mov ecx, dword [0x58deec]
mov edx, dword [ecx + 0x1e4]
push 0x2711
push edx
push eax
call fcn.004a8f00
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x1e8]
mov edx, dword [esi + 0x58]
push 0x2712
push ecx
push edx
call fcn.004a8f00
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x754]
mov edx, dword [esi + 0x58]
push 0x271d
push ecx
push edx
call fcn.004a8f00
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x1ec]
mov edx, dword [esi + 0x58]
push 0x2713
push ecx
push edx
call fcn.004a8f00
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0xa2c]
mov edx, dword [esi + 0x58]
push 0x2725
push ecx
push edx
call fcn.004a8f00
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x1f0]
mov edx, dword [esi + 0x58]
push 0x2714
push ecx
push edx
call fcn.004a8f00
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x1f4]
mov edx, dword [esi + 0x58]
push 0x2715
push ecx
push edx
call fcn.004a8f00
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.004e5680
call fcn.004cbaa0
call fcn.004cb9a0
push str.initheader_n
call fcn.0048f080
mov ecx, dword [0x5980b4]
add esp, 4
mov dword [esp + 0x10], ebp
lea edi, [esp + 0xa4]
cmp dword [esp + 0x40], 0
mov dword [edi - 4], ebp
je 0x4d06a0
mov ebx, dword [esp + 0x40]
push ebp
push ebx
call fcn.004ec9e0
push ebp
push ebx
mov dword [edi], eax
call fcn.004ec8e0
mov edx, dword [esp + 0x40]
push ebp
push edx
mov dword [edi + 4], eax
lea ebx, [edi - 8]
call fcn.004ec930
mov ecx, dword [0x5980b4]
mov dword [ebx], eax
mov eax, dword [esp + 0x10]
jmp 0x4d06b9
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 0x4d0663
push 0x4c1b50
push 0xd
lea eax, [esp + 0x70]
push eax
call fcn.004b4200
mov ebp, dword [0x597e34]
xor ebx, ebx
lea ebx, [ebx]
mov eax, dword [esp + ebx*4 + 0x68]
cmp dword [eax + 4], 0
je 0x4d0700
cmp dword [eax + 8], 0
je 0x4d0722
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.004ecd20
add ebx, 1
cmp ebx, 0xd
jl 0x4d06f0
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.004ae6f0
push esi
call fcn.004c2320
push str.initsearch_n
call fcn.0048f080
mov edx, dword [esi + 0x180]
mov eax, dword [esi + 0x68]
movsx edi, byte [0x58a710]
add esp, 4
push edx
push eax
mov dword [esi + 0x1f8], 1
call fcn.004a9f70
mov eax, edi
sub eax, 0
mov dword [esi + 0x1f8], 0
je 0x4d07bc
sub eax, 2
je 0x4d07b3
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d07bc
mov edx, dword [esi + 0x68]
push edx
call fcn.004afd70
cmp dword [esi + 0x2cc], 2
jne 0x4d07d8
mov eax, dword [esi + 0x180]
movzx ecx, byte [eax]
mov edx, dword [esi + 0x60]
push ecx
push edx
call fcn.004aefe0
push str.parts_n
call fcn.0048f080
add esp, 4
push esi
call fcn.004c5c30
cmp dword [esp + 0x4c], 0
je 0x4d07fb
push 1
mov eax, esi
call fcn.004cab80
cmp dword [esp + 0x50], 0
je 0x4d080a
push 1
push esi
call fcn.00510610
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.004c2f70
mov eax, dword [esp + 0x28]
cmp eax, dword [esi + 0x2cc]
je 0x4d0872
mov dword [esi + 0x2cc], eax
sub eax, 0
je 0x4d0867
sub eax, 1
je 0x4d085f
sub eax, 1
jne 0x4d0872
mov ecx, dword [esi + 0x180]
movzx edx, byte [ecx]
mov eax, dword [esi + 0x60]
push edx
push eax
jmp 0x4d086d
mov ecx, dword [esi + 0x60]
push 1
push ecx
jmp 0x4d086d
mov edx, dword [esi + 0x60]
push 0
push edx
call fcn.004aefe0
push str.size_n
call fcn.0048f080
add esp, 4
push esi
call fcn.004c8f80
mov ecx, dword [0x58a62c]
cmp ecx, 0xfe
ja 0x4d08a7
mov eax, dword [0x598274]
test eax, eax
je 0x4d08a7
push 2
push ecx
mov ecx, dword [esi + 0x60]
push 0
push ecx
call eax
push 0x570108
call fcn.0048f080
add esp, 4
test edi, edi
je 0x4d08c0
mov edx, dword [esi + 0x60]
push 7
push edx
jmp 0x4d08d2
test ebx, ebx
je 0x4d08cc
mov eax, dword [esi + 0x60]
push 3
push eax
jmp 0x4d08d2
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 0x4d099f
mov eax, dword [esi + 0x60]
push eax
call fcn.004b3020
push str.enter_setfocus_n
call fcn.0048f080
add esp, 4
cmp dword [esp + 0x48], 0
je 0x4d096e
movsx eax, byte [0x58a70f]
sub eax, 0
je 0x4d094e
sub eax, 2
je 0x4d0945
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d094e
mov edx, dword [esi + 0x68]
push edx
call fcn.004afd70
mov eax, dword [esi + 0x68]
push eax
call edi
test eax, eax
jne 0x4d099f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.unable_to_set_focus__u_n
call fcn.0048f080
add esp, 8
jmp 0x4d099f
movsx eax, byte [0x58a710]
sub eax, 0
je 0x4d0999
sub eax, 2
je 0x4d0990
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d0999
mov edx, dword [esi + 0x68]
push edx
call fcn.004afd70
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 0x4d09d9
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x4d09d9
mov ecx, dword [0x597e60]
push eax
push ecx
call fcn.004033c0
mov edi, eax
test edi, edi
je 0x4d09d9
test dword [edi + 8], 0x8000
jne 0x4d0a50
mov eax, dword [esp + 0x30]
sub eax, 1
je 0x4d0a0e
sub eax, 1
je 0x4d09f4
mov edx, dword [esp + 0x24]
push edx
push esi
call fcn.00512190
jmp 0x4d0a50
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.00512370
jmp 0x4d0a50
lea eax, [esp + 0x9c]
push eax
call fcn.00401210
mov ecx, dword [esp + 0x2c4]
push ecx
lea edx, [esp + 0xa0]
push edx
call fcn.005261f0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xa4]
push eax
push ecx
push esi
call fcn.005121e0
lea edx, [esp + 0x9c]
push edx
call fcn.00523250
test edi, edi
je 0x4d0a59
call fcn.004ca860
test ebx, ebx
je 0x4d0b0d
mov edi, dword [ebx + 0x50]
test edi, edi
je 0x4d0ac3
push esi
call fcn.005113f0
test eax, eax
push edi
je 0x4d0aaf
push esi
call fcn.005114a0
mov edi, eax
cmp edi, 0xffffffff
je 0x4d0b0d
push 1
push 1
push 1
push 0
push 1
push 1
push edi
push esi
call fcn.004f7040
push 0
push edi
push esi
call fcn.004f66c0
mov eax, dword [esi + 0x2e4]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x4d0b0d
mov ecx, dword [esi + 0x1dc]
push ecx
call fcn.00522bf0
mov dword [esi + 0x1dc], eax
jmp 0x4d0b0d
mov eax, dword [ebx + 0x7c]
test eax, eax
je 0x4d0b0d
add eax, 0xffffffff
xor edi, edi
cmp eax, 3
ja case.default.0x4d0ad4
jmp dword [eax*4 + 0x4d0b5c]
mov edi, 1
jmp case.default.0x4d0ad4
mov edi, 2
jmp case.default.0x4d0ad4
mov edi, 5
jmp case.default.0x4d0ad4
mov edi, 6
mov edx, dword [esi + 0x2e4]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
test edi, edi
je 0x4d0b0d
push edi
push esi
call fcn.004f7d20
lea eax, [esp + 0x1ac]
push eax
mov dword [esi + 0x12c], 1
call fcn.00523250
lea ecx, [esp + 0x2bc]
push ecx
call fcn.00523250
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.0054962d
add esp, 0x3c0
ret 0xc