Function at 0x4cf720
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.0048f0d0
add esp, 0xc
cmp byte [0x597f12], 0
je 0x4cf7a1
test ebp, ebp
jne 0x4cf7a1
mov esi, dword [0x59832c]
test esi, esi
je 0x4cf7a1
mov edi, dword [sym.imp.USER32.dll_IsWindowVisible]
lea ebx, [ebx]
cmp dword [esi + 0x12c], 0
je 0x4cf797
mov eax, dword [esi + 0x60]
push eax
call edi
test eax, eax
je 0x4cf938
mov esi, dword [esi + 0x124]
test esi, esi
jne 0x4cf780
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.004a49a0
push 0x480
mov esi, eax
push 0
push esi
call fcn.00549e40
mov eax, dword [0x59832c]
add esp, 0xc
test eax, eax
je 0x4cf7f7
mov dword [eax + 0x128], esi
cmp dword [0x598330], 0
mov dword [esi + 0x124], eax
mov dword [esi + 0x128], 0
mov dword [0x59832c], esi
jne 0x4cf81c
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.004be910
lea edx, [esi + 0x3a0]
push edx
call fcn.004b5300
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 0x4cfc71
cmp byte [0x597ef7], 0
mov dword [esp + 0x10], ebp
je 0x4cf95a
mov dl, byte [0x597e8a]
mov byte [esi + 0x178], dl
jmp 0x4cf966
push esi
push str.ui_show_hidden__p_n
call fcn.0048f0d0
mov ecx, dword [esp + 0x3e4]
add esp, 8
push ecx
push ebx
push esi
call fcn.004cbfc0
jmp 0x4d0bef
mov al, byte [ebp + 0x178]
mov byte [esi + 0x178], al
cmp byte [0x597ef9], 0
je 0x4cf97d
mov cl, byte [0x597e89]
mov byte [esi + 0x17a], cl
jmp 0x4cf989
mov dl, byte [ebp + 0x17a]
mov byte [esi + 0x17a], dl
cmp byte [0x597ef8], 0
je 0x4cf99f
mov al, byte [0x597e88]
mov byte [esi + 0x179], al
jmp 0x4cf9ab
mov cl, byte [ebp + 0x179]
mov byte [esi + 0x179], cl
cmp byte [0x597efa], 0
je 0x4cf9c2
mov dl, byte [0x597e8b]
mov byte [esi + 0x17c], dl
jmp 0x4cf9ce
mov al, byte [ebp + 0x17c]
mov byte [esi + 0x17c], al
cmp byte [0x597efb], 0
je 0x4cf9e5
mov cl, byte [0x597e8c]
mov byte [esi + 0x17b], cl
jmp 0x4cf9f1
mov dl, byte [ebp + 0x17b]
mov byte [esi + 0x17b], dl
cmp byte [0x58a68c], 0
je 0x4cfa02
mov eax, dword [0x597f3c]
push eax
jmp 0x4cfa09
mov ecx, dword [ebp + 0x180]
push ecx
call fcn.0051c290
mov dword [esi + 0x180], eax
cmp byte [0x597efc], 0
je 0x4cfa26
mov edx, dword [0x597fc0]
push edx
jmp 0x4cfa2d
mov eax, dword [ebp + 0xac]
push eax
call fcn.0051c290
mov dword [esi + 0xac], eax
cmp byte [0x597efd], 0
je 0x4cfa9a
mov ecx, dword [0x597ff0]
push ecx
call fcn.004c4470
cmp eax, edi
mov dword [esi + 0x29c], eax
je 0x4cfa66
movsx edx, byte [0x58a70c]
mov dword [esi + 0x2a0], edx
jmp 0x4cfa7a
mov dword [esi + 0x29c], 0xa
mov dword [esi + 0x2a0], 0
test ebx, ebx
mov dword [esp + 0x24], 0
je 0x4cfab2
cmp dword [ebx + 0x90], 0
je 0x4cfab2
mov edx, 1
mov dword [esp + 0x24], edx
jmp 0x4cfab7
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 0x4cfb06
cmp byte [0x597e8d], 0
je 0x4cfad1
mov dword [esi + 0x354], edx
jmp 0x4cfadb
mov dword [esi + 0x354], 0
mov eax, dword [0x58a630]
mov ecx, dword [0x58a634]
cmp eax, ecx
jge 0x4cfaec
mov eax, ecx
mov ecx, dword [0x58a638]
cmp eax, ecx
jle 0x4cfaf8
mov eax, ecx
cmp eax, edx
jge 0x4cfafe
mov eax, edx
mov dword [esi + 0x358], eax
jmp 0x4cfb1e
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 0x4cfb66
mov eax, dword [0x597ff4]
movsx edx, byte [0x597fea]
push eax
lea ecx, [esp + 0x2c0]
push ecx
mov dword [esp + 0x38], edx
call fcn.00523cb0
mov edx, dword [0x597ff8]
push edx
lea eax, [esp + 0x1b0]
push eax
call fcn.00523cb0
movsx ecx, byte [0x58a70d]
mov dword [esp + 0x38], ecx
jmp 0x4cfbcf
mov eax, dword [ebp + 0x1b4]
sub eax, 2
je 0x4cfbad
sub eax, edx
je 0x4cfb7f
mov dword [esp + 0x30], 0
jmp 0x4cfbd4
mov eax, dword [ebp + 0x1b8]
lea edx, [esp + 0x1ac]
push edx
push eax
call fcn.00490170
mov ecx, dword [ebp + 0x1b8]
push ecx
call fcn.00490970
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], 2
jmp 0x4cfbcf
mov edx, dword [ebp + 0x1b8]
push edx
call fcn.0040d100
push eax
lea eax, [esp + 0x2c0]
push eax
call fcn.00523cb0
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 0x4cfc50
mov eax, dword [ebp + 0x2c4]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x2cc]
mov dword [esp + 0x28], eax
jmp 0x4cfe7a
mov ecx, dword [ebp + 0x60]
push ecx
call fcn.004ad780
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x2cc]
mov edx, 1
mov dword [esp + 0x28], eax
jmp 0x4cfe7a
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.0051c290
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.004c4470
cmp eax, edi
mov dword [esi + 0x29c], eax
je 0x4cfd2c
movsx edx, byte [0x58a70c]
mov dword [esi + 0x2a0], edx
jmp 0x4cfd40
mov dword [esi + 0x29c], 0xa
mov dword [esi + 0x2a0], 0
cmp byte [0x597efd], 0
je 0x4cfd66
test ebx, ebx
mov dword [esp + 0x24], 0
je 0x4cfd66
cmp dword [ebx + 0x90], 0
je 0x4cfd66
mov dword [esp + 0x24], 1
mov eax, dword [0x59832c]
push eax
call fcn.004c4d70
test eax, eax
mov dword [esp + 0x10], eax
je 0x4cfd9d
cmp dword [eax + 0x2c8], 0
je 0x4cfd8a
mov ecx, dword [eax + 0x2c4]
jmp 0x4cfda4
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x60]
push eax
call fcn.004ad780
mov dword [esp + 0x2c], eax
jmp 0x4cfda8
movsx ecx, byte [0x597e84]
mov dword [esp + 0x2c], ecx
mov edx, dword [0x597f3c]
push edx
call fcn.0051c290
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.00523cb0
mov eax, dword [0x597ff8]
push eax
lea ecx, [esp + 0x1b0]
push ecx
call fcn.00523cb0
cmp byte [0x598170], 0
movsx edx, byte [0x58a70d]
mov dword [esp + 0x38], edx
je 0x4cfe12
cmp byte [0x597f43], 0
sete al
mov byte [esi + 0x184], al
jmp 0x4cfe1e
mov cl, byte [0x597f43]
mov byte [esi + 0x184], cl
cmp byte [0x597e8d], 1
jne 0x4cfe33
mov dword [esi + 0x354], 1
jmp 0x4cfe3d
mov dword [esi + 0x354], 0
mov eax, dword [0x58a630]
mov ecx, dword [0x58a634]
cmp eax, ecx
jge 0x4cfe4e
mov eax, ecx
mov ecx, dword [0x58a638]
cmp eax, ecx
jle 0x4cfe5a
mov eax, ecx
cmp eax, 1
jge 0x4cfe64
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 0x4cfeb3
cmp eax, 2
je 0x4cfead
cmp eax, 6
je 0x4cfead
cmp eax, 7
jne 0x4cfeb7
mov dword [esp + 0x3c], edx
jmp 0x4cfeb7
mov dword [esp + 0x2c], edx
test ebx, ebx
mov ecx, 0x8000
je 0x4d012a
mov eax, dword [ebx + 4]
test eax, 0x200
je 0x4cfed4
mov dword [esp + 0x2c], edx
jmp 0x4cfee5
test dword [ebx + 8], 0x200
je 0x4cfee5
mov dword [esp + 0x2c], 0
test eax, 0x400
je 0x4cfef2
mov dword [esp + 0x3c], edx
jmp 0x4cff03
test dword [ebx + 8], 0x400
je 0x4cff03
mov dword [esp + 0x3c], 0
test eax, 0x800
je 0x4cff10
mov dword [esp + 0x44], edx
jmp 0x4cff21
test dword [ebx + 8], 0x800
je 0x4cff21
mov dword [esp + 0x44], 0
test eax, 0x200000
je 0x4cff2e
mov dword [esp + 0x28], edx
jmp 0x4cff3f
test dword [ebx + 8], 0x200000
je 0x4cff3f
mov dword [esp + 0x28], 0
test eax, 0x1000
je 0x4cff4f
mov byte [esi + 0x17b], 1
jmp 0x4cff5f
test dword [ebx + 8], 0x1000
je 0x4cff5f
mov byte [esi + 0x17b], 0
mov eax, 0x2000
test dword [ebx + 4], eax
je 0x4cff72
mov byte [esi + 0x178], 1
jmp 0x4cff7e
test dword [ebx + 8], eax
je 0x4cff7e
mov byte [esi + 0x178], 0
mov eax, 0x4000
test dword [ebx + 4], eax
je 0x4cff91
mov byte [esi + 0x179], 1
jmp 0x4cff9d
test dword [ebx + 8], eax
je 0x4cff9d
mov byte [esi + 0x179], 0
test dword [ebx + 4], ecx
je 0x4cffab
mov byte [esi + 0x17a], 1
jmp 0x4cffb7
test dword [ebx + 8], ecx
je 0x4cffb7
mov byte [esi + 0x17a], 0
mov eax, 0x10000
test dword [ebx + 4], eax
je 0x4cffca
mov byte [esi + 0x17c], 1
jmp 0x4cffd6
test dword [ebx + 8], eax
je 0x4cffd6
mov byte [esi + 0x17c], 0
mov eax, dword [ebx]
test eax, 0x80000
je 0x4cffeb
mov dword [esi + 0x354], 0
jmp 0x4cfff8
test eax, 0x100000
je 0x4cfff8
mov dword [esi + 0x354], edx
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x4d0023
mov ecx, dword [0x58a634]
cmp eax, ecx
jge 0x4d000b
mov eax, ecx
mov ecx, dword [0x58a638]
cmp eax, ecx
jle 0x4d0017
mov eax, ecx
cmp eax, edx
jge 0x4d001d
mov eax, edx
mov dword [esi + 0x358], eax
cmp dword [ebx + 0x90], 0
je 0x4d007e
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.00522d10
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 0x4d0098
push eax
mov eax, dword [esi + 0xac]
push eax
call fcn.00522d10
mov dword [esi + 0xac], eax
mov eax, dword [ebx + 0x70]
cmp eax, edi
je 0x4d00bf
mov dword [esi + 0x29c], eax
cmp dword [ebx + 0x6c], 0
jne 0x4d00b7
push eax
call fcn.004c44b0
mov dword [esi + 0x2a0], eax
xor edi, edi
mov dword [esp + 0x24], edi
jmp 0x4d00c1
xor edi, edi
mov eax, dword [ebx + 0x6c]
cmp eax, edi
je 0x4d00d9
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 0x4d00f8
push eax
lea edx, [esp + 0x2c0]
push edx
call fcn.00523cb0
mov dword [esp + 0x30], 1
jmp 0x4d012a
mov eax, dword [ebx + 0x34]
cmp eax, edi
je 0x4d011e
push eax
lea eax, [esp + 0x1b0]
push eax
call fcn.00523cb0
mov ecx, dword [ebx + 0x5c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], 2
jmp 0x4d012a
test dword [ebx], 0x400
je 0x4d012a
mov dword [esp + 0x30], edi
test ebp, ebp
je 0x4d013c
mov edx, dword [ebp + 0x1f4]
mov dword [esi + 0x1f4], edx
jmp 0x4d0147
mov eax, dword [0x597e9c]
mov dword [esi + 0x1f4], eax
cmp byte [0x58a62b], 0
mov dword [esp + 0x34], 0
mov ebx, closesocket
je 0x4d0167
mov dword [esp + 0x34], 0x40000
jmp 0x4d01c0
push 0x7f00
push 0
call dword [0x597e04]
mov ecx, dword [0x5981b4]
mov edx, dword [0x5981b8]
push eax
push ecx
push edx
push 0x4c1ea0
push str.EVERYTHING_NOTASKBAR
push 8
call fcn.004aa1e0
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.004aa330
mov dword [esi + 0x5c], eax
cmp byte [0x598170], 0
je 0x4d01d1
or dword [esp + 0x34], 0x400000
cmp dword [0x58a62c], 0xfe
ja 0x4d01ee
cmp dword [0x598274], 0
je 0x4d01ee
or dword [esp + 0x34], 0x80000
cmp dword [esp + 0x10], 0
je 0x4d02b8
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.004b0430
test eax, eax
jne 0x4d03c5
mov edx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.004acb70
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x60]
jle 0x4d0276
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x64]
jle 0x4d0288
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.004b0430
test eax, eax
je 0x4d03c5
jmp 0x4d03ad
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 0x4d030d
test eax, eax
jne 0x4d0315
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 0x4d03c5
mov edx, dword [0x597e80]
test edx, edx
jle 0x4d03c5
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.004b0430
test eax, eax
jne 0x4d03ad
cmp byte [0x58a628], al
je 0x4d03ad
push edi
lea eax, [esp + 0x18]
push eax
call fcn.004b03b0
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.00523cb0
call fcn.004a3aa0
test eax, eax
je 0x4d042a
call fcn.004a3aa0
push eax
lea edx, [esp + 0xa0]
push 0x56c744
push edx
call fcn.00524310
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 0x4cdad0
push edx
push 8
call fcn.004aa1e0
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.004aa330
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.004ac6f0
push 0x7f00
push 0
call dword [0x597e04]
push eax
push 0
push 0
push 0x4c7e20
push str.EVERYTHING_TOOLBAR
push 8
call fcn.004aa1e0
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.004aa330
push esi
push eax
mov dword [esi + 0x64], eax
call fcn.004ac6f0
push esi
call fcn.004cf640
xor edi, edi
call dword [0x58df60]
test eax, eax
je 0x4d052c
call dword [0x58df64]
test eax, eax
jne 0x4d0531
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.004aa330
push esi
push eax
mov dword [esi + 0x2e4], eax
call fcn.004ac6f0
mov ecx, dword [esi + 0x2e4]
push 0x4f8f40
push ecx
call fcn.004ac710
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.004aa330
cmp dword [esi + 0x354], ebp
mov dword [esi + 0x6c], eax
je 0x4d05df
push ebp
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [esi + 0x6c]
push esi
push edx
call fcn.004ac6f0
mov eax, dword [esi + 0x6c]
push 0x4c5120
push eax
call fcn.004ac710
mov dword [esi + 0x74], eax
mov eax, dword [esp + 0x40]
cmp eax, ebp
je 0x4d060a
cmp dword [eax + 0x80], ebp
jmp 0x4d0611
cmp byte [0x58a70e], 0
je 0x4d061a
push 1
call fcn.004cad20
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.004a8fb0
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x1e8]
mov edx, dword [esi + 0x58]
push 0x2712
push ecx
push edx
call fcn.004a8fb0
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x754]
mov edx, dword [esi + 0x58]
push 0x271d
push ecx
push edx
call fcn.004a8fb0
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x1ec]
mov edx, dword [esi + 0x58]
push 0x2713
push ecx
push edx
call fcn.004a8fb0
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0xa2c]
mov edx, dword [esi + 0x58]
push 0x2725
push ecx
push edx
call fcn.004a8fb0
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x1f0]
mov edx, dword [esi + 0x58]
push 0x2714
push ecx
push edx
call fcn.004a8fb0
mov eax, dword [0x58deec]
mov ecx, dword [eax + 0x1f4]
mov edx, dword [esi + 0x58]
push 0x2715
push ecx
push edx
call fcn.004a8fb0
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.004e5730
call fcn.004cbb40
call fcn.004cba40
push str.initheader_n
call fcn.0048f0d0
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 0x4d0750
mov ebx, dword [esp + 0x40]
push ebp
push ebx
call fcn.004eca70
push ebp
push ebx
mov dword [edi], eax
call fcn.004ec970
mov edx, dword [esp + 0x40]
push ebp
push edx
mov dword [edi + 4], eax
lea ebx, [edi - 8]
call fcn.004ec9c0
mov ecx, dword [0x5980b4]
mov dword [ebx], eax
mov eax, dword [esp + 0x10]
jmp 0x4d0769
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 0x4d0713
push 0x4c1be0
push 0xd
lea eax, [esp + 0x70]
push eax
call fcn.004b4290
mov ebp, dword [0x597e34]
xor ebx, ebx
lea ebx, [ebx]
mov eax, dword [esp + ebx*4 + 0x68]
cmp dword [eax + 4], 0
je 0x4d07b0
cmp dword [eax + 8], 0
je 0x4d07d2
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.004ecdb0
add ebx, 1
cmp ebx, 0xd
jl 0x4d07a0
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.004ae780
push esi
call fcn.004c23b0
push str.initsearch_n
call fcn.0048f0d0
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.004aa020
mov eax, edi
sub eax, 0
mov dword [esi + 0x1f8], 0
je 0x4d086c
sub eax, 2
je 0x4d0863
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d086c
mov edx, dword [esi + 0x68]
push edx
call fcn.004afe00
cmp dword [esi + 0x2cc], 2
jne 0x4d0888
mov eax, dword [esi + 0x180]
movzx ecx, byte [eax]
mov edx, dword [esi + 0x60]
push ecx
push edx
call fcn.004af060
push str.parts_n
call fcn.0048f0d0
add esp, 4
push esi
call fcn.004c5cd0
cmp dword [esp + 0x4c], 0
je 0x4d08ab
push 1
mov eax, esi
call fcn.004cac20
cmp dword [esp + 0x50], 0
je 0x4d08ba
push 1
push esi
call fcn.00510720
push str.setmode_n
call fcn.0048f0d0
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.004c3000
mov eax, dword [esp + 0x28]
cmp eax, dword [esi + 0x2cc]
je 0x4d0922
mov dword [esi + 0x2cc], eax
sub eax, 0
je 0x4d0917
sub eax, 1
je 0x4d090f
sub eax, 1
jne 0x4d0922
mov ecx, dword [esi + 0x180]
movzx edx, byte [ecx]
mov eax, dword [esi + 0x60]
push edx
push eax
jmp 0x4d091d
mov ecx, dword [esi + 0x60]
push 1
push ecx
jmp 0x4d091d
mov edx, dword [esi + 0x60]
push 0
push edx
call fcn.004af060
push str.size_n
call fcn.0048f0d0
add esp, 4
push esi
call fcn.004c9020
mov ecx, dword [0x58a62c]
cmp ecx, 0xfe
ja 0x4d0957
mov eax, dword [0x598274]
test eax, eax
je 0x4d0957
push 2
push ecx
mov ecx, dword [esi + 0x60]
push 0
push ecx
call eax
push 0x570108
call fcn.0048f0d0
add esp, 4
test edi, edi
je 0x4d0970
mov edx, dword [esi + 0x60]
push 7
push edx
jmp 0x4d0982
test ebx, ebx
je 0x4d097c
mov eax, dword [esi + 0x60]
push 3
push eax
jmp 0x4d0982
mov ecx, dword [esi + 0x60]
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
push str.redraw_n
call fcn.0048f0d0
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 0x4d0a4f
mov eax, dword [esi + 0x60]
push eax
call fcn.004b30b0
push str.enter_setfocus_n
call fcn.0048f0d0
add esp, 4
cmp dword [esp + 0x48], 0
je 0x4d0a1e
movsx eax, byte [0x58a70f]
sub eax, 0
je 0x4d09fe
sub eax, 2
je 0x4d09f5
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d09fe
mov edx, dword [esi + 0x68]
push edx
call fcn.004afe00
mov eax, dword [esi + 0x68]
push eax
call edi
test eax, eax
jne 0x4d0a4f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.unable_to_set_focus__u_n
call fcn.0048f0d0
add esp, 8
jmp 0x4d0a4f
movsx eax, byte [0x58a710]
sub eax, 0
je 0x4d0a49
sub eax, 2
je 0x4d0a40
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d0a49
mov edx, dword [esi + 0x68]
push edx
call fcn.004afe00
mov eax, dword [esi + 0x68]
push eax
call edi
push str.leave_setfocus_n
call fcn.0048f0d0
mov ebx, dword [esp + 0x58]
add esp, 4
xor edi, edi
test ebx, ebx
je 0x4d0a89
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x4d0a89
mov ecx, dword [0x597e60]
push eax
push ecx
call fcn.004033e0
mov edi, eax
test edi, edi
je 0x4d0a89
test dword [edi + 8], 0x8000
jne 0x4d0b00
mov eax, dword [esp + 0x30]
sub eax, 1
je 0x4d0abe
sub eax, 1
je 0x4d0aa4
mov edx, dword [esp + 0x24]
push edx
push esi
call fcn.005122a0
jmp 0x4d0b00
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.00512480
jmp 0x4d0b00
lea eax, [esp + 0x9c]
push eax
call fcn.00401210
mov ecx, dword [esp + 0x2c4]
push ecx
lea edx, [esp + 0xa0]
push edx
call fcn.00526320
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xa4]
push eax
push ecx
push esi
call fcn.005122f0
lea edx, [esp + 0x9c]
push edx
call fcn.00401230
test edi, edi
je 0x4d0b09
call fcn.004ca900
test ebx, ebx
je 0x4d0bbd
mov edi, dword [ebx + 0x50]
test edi, edi
je 0x4d0b73
push esi
call fcn.00511500
test eax, eax
push edi
je 0x4d0b5f
push esi
call fcn.005115b0
mov edi, eax
cmp edi, 0xffffffff
je 0x4d0bbd
push 1
push 1
push 1
push 0
push 1
push 1
push edi
push esi
call fcn.004f70e0
push 0
push edi
push esi
call fcn.004f6760
mov eax, dword [esi + 0x2e4]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x4d0bbd
mov ecx, dword [esi + 0x1dc]
push ecx
call fcn.00522d10
mov dword [esi + 0x1dc], eax
jmp 0x4d0bbd
mov eax, dword [ebx + 0x7c]
test eax, eax
je 0x4d0bbd
add eax, 0xffffffff
xor edi, edi
cmp eax, 3
ja case.default.0x4d0b84
jmp dword [eax*4 + 0x4d0c0c]
mov edi, 1
jmp case.default.0x4d0b84
mov edi, 2
jmp case.default.0x4d0b84
mov edi, 5
jmp case.default.0x4d0b84
mov edi, 6
mov edx, dword [esi + 0x2e4]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
test edi, edi
je 0x4d0bbd
push edi
push esi
call fcn.004f7dc0
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.0048f0d0
add esp, 8
mov ecx, dword [esp + 0x3cc]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00549750
add esp, 0x3c0
ret 0xc