Function at 0x4cf9c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x3c0
mov eax, dword [0x597fb8]
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 [0x598f12], 0
je 0x4cfa41
test ebp, ebp
jne 0x4cfa41
mov esi, dword [0x59932c]
test esi, esi
je 0x4cfa41
mov edi, dword [sym.imp.USER32.dll_IsWindowVisible]
lea ebx, [ebx]
cmp dword [esi + 0x12c], 0
je 0x4cfa37
mov eax, dword [esi + 0x60]
push eax
call edi
test eax, eax
je 0x4cfbd8
mov esi, dword [esi + 0x124]
test esi, esi
jne 0x4cfa20
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.0054a020
mov eax, dword [0x59932c]
add esp, 0xc
test eax, eax
je 0x4cfa97
mov dword [eax + 0x128], esi
cmp dword [0x599330], 0
mov dword [esi + 0x124], eax
mov dword [esi + 0x128], 0
mov dword [0x59932c], esi
jne 0x4cfabc
mov dword [0x599330], 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], 0x5727e8
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 [0x598e86]
movsx ecx, byte [0x598e85]
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], ecx
je 0x4cff11
cmp byte [0x598ef7], 0
mov dword [esp + 0x10], ebp
je 0x4cfbfa
mov dl, byte [0x598e8a]
mov byte [esi + 0x178], dl
jmp 0x4cfc06
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.004cc270
jmp 0x4d0e8f
mov al, byte [ebp + 0x178]
mov byte [esi + 0x178], al
cmp byte [0x598ef9], 0
je 0x4cfc1d
mov cl, byte [0x598e89]
mov byte [esi + 0x17a], cl
jmp 0x4cfc29
mov dl, byte [ebp + 0x17a]
mov byte [esi + 0x17a], dl
cmp byte [0x598ef8], 0
je 0x4cfc3f
mov al, byte [0x598e88]
mov byte [esi + 0x179], al
jmp 0x4cfc4b
mov cl, byte [ebp + 0x179]
mov byte [esi + 0x179], cl
cmp byte [0x598efa], 0
je 0x4cfc62
mov dl, byte [0x598e8b]
mov byte [esi + 0x17c], dl
jmp 0x4cfc6e
mov al, byte [ebp + 0x17c]
mov byte [esi + 0x17c], al
cmp byte [0x598efb], 0
je 0x4cfc85
mov cl, byte [0x598e8c]
mov byte [esi + 0x17b], cl
jmp 0x4cfc91
mov dl, byte [ebp + 0x17b]
mov byte [esi + 0x17b], dl
cmp byte [0x58b68c], 0
je 0x4cfca2
mov eax, dword [0x598f3c]
push eax
jmp 0x4cfca9
mov ecx, dword [ebp + 0x180]
push ecx
call fcn.0051c5e0
mov dword [esi + 0x180], eax
cmp byte [0x598efc], 0
je 0x4cfcc6
mov edx, dword [0x598fc0]
push edx
jmp 0x4cfccd
mov eax, dword [ebp + 0xac]
push eax
call fcn.0051c5e0
mov dword [esi + 0xac], eax
cmp byte [0x598efd], 0
je 0x4cfd3a
mov ecx, dword [0x598ff0]
push ecx
call fcn.004c4730
cmp eax, edi
mov dword [esi + 0x29c], eax
je 0x4cfd06
movsx edx, byte [0x58b70c]
mov dword [esi + 0x2a0], edx
jmp 0x4cfd1a
mov dword [esi + 0x29c], 0xa
mov dword [esi + 0x2a0], 0
test ebx, ebx
mov dword [esp + 0x24], 0
je 0x4cfd52
cmp dword [ebx + 0x90], 0
je 0x4cfd52
mov edx, 1
mov dword [esp + 0x24], edx
jmp 0x4cfd57
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 [0x598efe], 0
je 0x4cfda6
cmp byte [0x598e8d], 0
je 0x4cfd71
mov dword [esi + 0x354], edx
jmp 0x4cfd7b
mov dword [esi + 0x354], 0
mov eax, dword [0x58b630]
mov ecx, dword [0x58b634]
cmp eax, ecx
jge 0x4cfd8c
mov eax, ecx
mov ecx, dword [0x58b638]
cmp eax, ecx
jle 0x4cfd98
mov eax, ecx
cmp eax, edx
jge 0x4cfd9e
mov eax, edx
mov dword [esi + 0x358], eax
jmp 0x4cfdbe
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 0x4cfe06
mov eax, dword [0x598ff4]
movsx edx, byte [0x598fea]
push eax
lea ecx, [esp + 0x2c0]
push ecx
mov dword [esp + 0x38], edx
call fcn.00523f80
mov edx, dword [0x598ff8]
push edx
lea eax, [esp + 0x1b0]
push eax
call fcn.00523f80
movsx ecx, byte [0x58b70d]
mov dword [esp + 0x38], ecx
jmp 0x4cfe6f
mov eax, dword [ebp + 0x1b4]
sub eax, 2
je 0x4cfe4d
sub eax, edx
je 0x4cfe1f
mov dword [esp + 0x30], 0
jmp 0x4cfe74
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 0x4cfe6f
mov edx, dword [ebp + 0x1b8]
push edx
call fcn.0040d0a0
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 0x4cfef0
mov eax, dword [ebp + 0x2c4]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x2cc]
mov dword [esp + 0x28], eax
jmp 0x4d011a
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 0x4d011a
movzx ecx, byte [0x598e8a]
mov byte [esi + 0x178], cl
movzx edx, byte [0x598e89]
mov byte [esi + 0x17a], dl
mov al, byte [0x598e88]
mov byte [esi + 0x179], al
movzx ecx, byte [0x598e8b]
mov byte [esi + 0x17c], cl
movzx edx, byte [0x598e8c]
mov byte [esi + 0x17b], dl
movsx eax, byte [0x598fbe]
mov ecx, dword [0x58b704]
mov dword [esi + 0xa4], ecx
movsx edx, byte [0x58b703]
mov dword [esp + 0x4c], eax
mov dword [esi + 0xa8], edx
mov eax, dword [0x598fc0]
push eax
call fcn.0051c5e0
mov dword [esi + 0xac], eax
movsx ecx, byte [0x598fd8]
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 [0x598ff0]
push ecx
call fcn.004c4730
cmp eax, edi
mov dword [esi + 0x29c], eax
je 0x4cffcc
movsx edx, byte [0x58b70c]
mov dword [esi + 0x2a0], edx
jmp 0x4cffe0
mov dword [esi + 0x29c], 0xa
mov dword [esi + 0x2a0], 0
cmp byte [0x598efd], 0
je 0x4d0006
test ebx, ebx
mov dword [esp + 0x24], 0
je 0x4d0006
cmp dword [ebx + 0x90], 0
je 0x4d0006
mov dword [esp + 0x24], 1
mov eax, dword [0x59932c]
push eax
call fcn.004c5030
test eax, eax
mov dword [esp + 0x10], eax
je 0x4d003d
cmp dword [eax + 0x2c8], 0
je 0x4d002a
mov ecx, dword [eax + 0x2c4]
jmp 0x4d0044
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x60]
push eax
call fcn.004ada30
mov dword [esp + 0x2c], eax
jmp 0x4d0048
movsx ecx, byte [0x598e84]
mov dword [esp + 0x2c], ecx
mov edx, dword [0x598f3c]
push edx
call fcn.0051c5e0
mov dword [esi + 0x180], eax
mov ecx, dword [0x598ff4]
movsx eax, byte [0x598fea]
push ecx
lea edx, [esp + 0x2c0]
push edx
mov dword [esp + 0x38], eax
call fcn.00523f80
mov eax, dword [0x598ff8]
push eax
lea ecx, [esp + 0x1b0]
push ecx
call fcn.00523f80
cmp byte [0x599170], 0
movsx edx, byte [0x58b70d]
mov dword [esp + 0x38], edx
je 0x4d00b2
cmp byte [0x598f43], 0
sete al
mov byte [esi + 0x184], al
jmp 0x4d00be
mov cl, byte [0x598f43]
mov byte [esi + 0x184], cl
cmp byte [0x598e8d], 1
jne 0x4d00d3
mov dword [esi + 0x354], 1
jmp 0x4d00dd
mov dword [esi + 0x354], 0
mov eax, dword [0x58b630]
mov ecx, dword [0x58b634]
cmp eax, ecx
jge 0x4d00ee
mov eax, ecx
mov ecx, dword [0x58b638]
cmp eax, ecx
jle 0x4d00fa
mov eax, ecx
cmp eax, 1
jge 0x4d0104
mov eax, 1
mov dword [esi + 0x358], eax
movsx edx, byte [0x598e87]
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 0x4d0153
cmp eax, 2
je 0x4d014d
cmp eax, 6
je 0x4d014d
cmp eax, 7
jne 0x4d0157
mov dword [esp + 0x3c], edx
jmp 0x4d0157
mov dword [esp + 0x2c], edx
test ebx, ebx
mov ecx, 0x8000
je 0x4d03ca
mov eax, dword [ebx + 4]
test eax, 0x200
je 0x4d0174
mov dword [esp + 0x2c], edx
jmp 0x4d0185
test dword [ebx + 8], 0x200
je 0x4d0185
mov dword [esp + 0x2c], 0
test eax, 0x400
je 0x4d0192
mov dword [esp + 0x3c], edx
jmp 0x4d01a3
test dword [ebx + 8], 0x400
je 0x4d01a3
mov dword [esp + 0x3c], 0
test eax, 0x800
je 0x4d01b0
mov dword [esp + 0x44], edx
jmp 0x4d01c1
test dword [ebx + 8], 0x800
je 0x4d01c1
mov dword [esp + 0x44], 0
test eax, 0x200000
je 0x4d01ce
mov dword [esp + 0x28], edx
jmp 0x4d01df
test dword [ebx + 8], 0x200000
je 0x4d01df
mov dword [esp + 0x28], 0
test eax, 0x1000
je 0x4d01ef
mov byte [esi + 0x17b], 1
jmp 0x4d01ff
test dword [ebx + 8], 0x1000
je 0x4d01ff
mov byte [esi + 0x17b], 0
mov eax, 0x2000
test dword [ebx + 4], eax
je 0x4d0212
mov byte [esi + 0x178], 1
jmp 0x4d021e
test dword [ebx + 8], eax
je 0x4d021e
mov byte [esi + 0x178], 0
mov eax, 0x4000
test dword [ebx + 4], eax
je 0x4d0231
mov byte [esi + 0x179], 1
jmp 0x4d023d
test dword [ebx + 8], eax
je 0x4d023d
mov byte [esi + 0x179], 0
test dword [ebx + 4], ecx
je 0x4d024b
mov byte [esi + 0x17a], 1
jmp 0x4d0257
test dword [ebx + 8], ecx
je 0x4d0257
mov byte [esi + 0x17a], 0
mov eax, 0x10000
test dword [ebx + 4], eax
je 0x4d026a
mov byte [esi + 0x17c], 1
jmp 0x4d0276
test dword [ebx + 8], eax
je 0x4d0276
mov byte [esi + 0x17c], 0
mov eax, dword [ebx]
test eax, 0x80000
je 0x4d028b
mov dword [esi + 0x354], 0
jmp 0x4d0298
test eax, 0x100000
je 0x4d0298
mov dword [esi + 0x354], edx
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x4d02c3
mov ecx, dword [0x58b634]
cmp eax, ecx
jge 0x4d02ab
mov eax, ecx
mov ecx, dword [0x58b638]
cmp eax, ecx
jle 0x4d02b7
mov eax, ecx
cmp eax, edx
jge 0x4d02bd
mov eax, edx
mov dword [esi + 0x358], eax
cmp dword [ebx + 0x90], 0
je 0x4d031e
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.00405d50
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.00527550
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4d0338
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 0x4d035f
mov dword [esi + 0x29c], eax
cmp dword [ebx + 0x6c], 0
jne 0x4d0357
push eax
call fcn.004c4770
mov dword [esi + 0x2a0], eax
xor edi, edi
mov dword [esp + 0x24], edi
jmp 0x4d0361
xor edi, edi
mov eax, dword [ebx + 0x6c]
cmp eax, edi
je 0x4d0379
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 0x4d0398
push eax
lea edx, [esp + 0x2c0]
push edx
call fcn.00523f80
mov dword [esp + 0x30], 1
jmp 0x4d03ca
mov eax, dword [ebx + 0x34]
cmp eax, edi
je 0x4d03be
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 0x4d03ca
test dword [ebx], 0x400
je 0x4d03ca
mov dword [esp + 0x30], edi
test ebp, ebp
je 0x4d03dc
mov edx, dword [ebp + 0x1f4]
mov dword [esi + 0x1f4], edx
jmp 0x4d03e7
mov eax, dword [0x598e9c]
mov dword [esi + 0x1f4], eax
cmp byte [0x58b62b], 0
mov dword [esp + 0x34], 0
mov ebx, closesocket
je 0x4d0407
mov dword [esp + 0x34], 0x40000
jmp 0x4d0460
push 0x7f00
push 0
call dword [0x598e04]
mov ecx, dword [0x5991b4]
mov edx, dword [0x5991b8]
push eax
push ecx
push edx
push 0x4c2150
push str.EVERYTHING_NOTASKBAR
push 8
call fcn.004aa4a0
mov eax, dword [0x5991b0]
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 [0x599170], 0
je 0x4d0471
or dword [esp + 0x34], 0x400000
cmp dword [0x58b62c], 0xfe
ja 0x4d048e
cmp dword [0x599274], 0
je 0x4d048e
or dword [esp + 0x34], 0x80000
cmp dword [esp + 0x10], 0
je 0x4d0558
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 0x4d0665
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 0x4d0516
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x64]
jle 0x4d0528
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 0x4d0665
jmp 0x4d064d
push 2
mov dword [esp + 0x14], ebx
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edx, dword [0x58ca38]
mov ecx, dword [0x58ca20]
add ecx, edx
add ecx, dword [0x58ca18]
mov edi, eax
add ecx, dword [0x58ca10]
mov eax, 0x2aaaaaab
imul ecx, dword [0x58eef4]
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 0x4d05ad
test eax, eax
jne 0x4d05b5
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 [0x598e7c]
sub edi, dword [esp + 0x14]
sub ebp, dword [esp + 0x18]
test eax, eax
jle 0x4d0665
mov edx, dword [0x598e80]
test edx, edx
jle 0x4d0665
mov edi, dword [0x598e78]
mov ecx, dword [0x598e74]
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 0x4d064d
cmp byte [0x58b628], al
je 0x4d064d
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.00523f80
call fcn.004a3a20
test eax, eax
je 0x4d06ca
call fcn.004a3a20
push eax
lea edx, [esp + 0xa0]
push 0x56d734
push edx
call fcn.005245e0
add esp, 0xc
push 0x7f00
push 0
call dword [0x598e04]
mov ecx, dword [0x5991b8]
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [0x5991b4]
push eax
push ecx
push 0x4cdd70
push edx
push 8
call fcn.004aa4a0
mov eax, dword [0x5991b0]
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.00527550
mov eax, dword [esi + 0x60]
push esi
push eax
call fcn.004ac9b0
push 0x7f00
push 0
call dword [0x598e04]
push eax
push 0
push 0
push 0x4c80d0
push str.EVERYTHING_TOOLBAR
push 8
call fcn.004aa4a0
mov ecx, dword [0x5991b0]
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.004cf8e0
xor edi, edi
call dword [0x58ef60]
test eax, eax
je 0x4d07cc
call dword [0x58ef64]
test eax, eax
jne 0x4d07d1
mov edi, 0x200
mov ecx, dword [0x5991b0]
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 [0x5991b0]
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 0x4d087f
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 0x4d08aa
cmp dword [eax + 0x80], ebp
jmp 0x4d08b1
cmp byte [0x58b70e], 0
je 0x4d08ba
push 1
call fcn.004cafd0
call dword [sym.imp.USER32.dll_CreateMenu]
mov dword [esi + 0x58], eax
mov ecx, dword [0x58eeec]
mov edx, dword [ecx + 0x1e4]
push 0x2711
push edx
push eax
call fcn.004a9260
mov eax, dword [0x58eeec]
mov ecx, dword [eax + 0x1e8]
mov edx, dword [esi + 0x58]
push 0x2712
push ecx
push edx
call fcn.004a9260
mov eax, dword [0x58eeec]
mov ecx, dword [eax + 0x754]
mov edx, dword [esi + 0x58]
push 0x271d
push ecx
push edx
call fcn.004a9260
mov eax, dword [0x58eeec]
mov ecx, dword [eax + 0x1ec]
mov edx, dword [esi + 0x58]
push 0x2713
push ecx
push edx
call fcn.004a9260
mov eax, dword [0x58eeec]
mov ecx, dword [eax + 0xa2c]
mov edx, dword [esi + 0x58]
push 0x2725
push ecx
push edx
call fcn.004a9260
mov eax, dword [0x58eeec]
mov ecx, dword [eax + 0x1f0]
mov edx, dword [esi + 0x58]
push 0x2714
push ecx
push edx
call fcn.004a9260
mov eax, dword [0x58eeec]
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.004cbdf0
call fcn.004cbcf0
push str.initheader_n
call fcn.0048f080
mov ecx, dword [0x5990b4]
add esp, 4
mov dword [esp + 0x10], ebp
lea edi, [esp + 0xa4]
cmp dword [esp + 0x40], 0
mov dword [edi - 4], ebp
je 0x4d09f0
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 [0x5990b4]
mov dword [ebx], eax
mov eax, dword [esp + 0x10]
jmp 0x4d0a09
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 0x4d09b3
push 0x4c1e90
push 0xd
lea eax, [esp + 0x70]
push eax
call fcn.004b44d0
mov ebp, dword [0x598e34]
xor ebx, ebx
lea ebx, [ebx]
mov eax, dword [esp + ebx*4 + 0x68]
cmp dword [eax + 4], 0
je 0x4d0a50
cmp dword [eax + 8], 0
je 0x4d0a72
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 0x4d0a40
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 [0x58b710]
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 0x4d0b0c
sub eax, 2
je 0x4d0b03
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d0b0c
mov edx, dword [esi + 0x68]
push edx
call fcn.004b00d0
cmp dword [esi + 0x2cc], 2
jne 0x4d0b28
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 0x4d0b4b
push 1
mov eax, esi
call fcn.004caed0
cmp dword [esp + 0x50], 0
je 0x4d0b5a
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 0x4d0bc2
mov dword [esi + 0x2cc], eax
sub eax, 0
je 0x4d0bb7
sub eax, 1
je 0x4d0baf
sub eax, 1
jne 0x4d0bc2
mov ecx, dword [esi + 0x180]
movzx edx, byte [ecx]
mov eax, dword [esi + 0x60]
push edx
push eax
jmp 0x4d0bbd
mov ecx, dword [esi + 0x60]
push 1
push ecx
jmp 0x4d0bbd
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 0x4d0bf7
mov eax, dword [0x599274]
test eax, eax
je 0x4d0bf7
push 2
push ecx
mov ecx, dword [esi + 0x60]
push 0
push ecx
call eax
push 0x571158
call fcn.0048f080
add esp, 4
test edi, edi
je 0x4d0c10
mov edx, dword [esi + 0x60]
push 7
push edx
jmp 0x4d0c22
test ebx, ebx
je 0x4d0c1c
mov eax, dword [esi + 0x60]
push 3
push eax
jmp 0x4d0c22
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 0x4d0cef
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 0x4d0cbe
movsx eax, byte [0x58b70f]
sub eax, 0
je 0x4d0c9e
sub eax, 2
je 0x4d0c95
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d0c9e
mov edx, dword [esi + 0x68]
push edx
call fcn.004b00d0
mov eax, dword [esi + 0x68]
push eax
call edi
test eax, eax
jne 0x4d0cef
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.unable_to_set_focus__u_n
call fcn.0048f080
add esp, 8
jmp 0x4d0cef
movsx eax, byte [0x58b710]
sub eax, 0
je 0x4d0ce9
sub eax, 2
je 0x4d0ce0
mov ecx, dword [esi + 0x68]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebp
jmp 0x4d0ce9
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 0x4d0d29
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x4d0d29
mov ecx, dword [0x598e60]
push eax
push ecx
call fcn.004033a0
mov edi, eax
test edi, edi
je 0x4d0d29
test dword [edi + 8], 0x8000
jne 0x4d0da0
mov eax, dword [esp + 0x30]
sub eax, 1
je 0x4d0d5e
sub eax, 1
je 0x4d0d44
mov edx, dword [esp + 0x24]
push edx
push esi
call fcn.005124f0
jmp 0x4d0da0
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 0x4d0da0
lea eax, [esp + 0x9c]
push eax
call fcn.00523650
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.00512540
lea edx, [esp + 0x9c]
push edx
call fcn.00527550
test edi, edi
je 0x4d0da9
call fcn.004cabb0
test ebx, ebx
je 0x4d0e5d
mov edi, dword [ebx + 0x50]
test edi, edi
je 0x4d0e13
push esi
call fcn.00511730
test eax, eax
push edi
je 0x4d0dff
push esi
call fcn.00511800
mov edi, eax
cmp edi, 0xffffffff
je 0x4d0e5d
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 0x4d0e5d
mov ecx, dword [esi + 0x1dc]
push ecx
call fcn.00522ff0
mov dword [esi + 0x1dc], eax
jmp 0x4d0e5d
mov eax, dword [ebx + 0x7c]
test eax, eax
je 0x4d0e5d
add eax, 0xffffffff
xor edi, edi
cmp eax, 3
ja case.default.0x4d0e24
jmp dword [eax*4 + 0x4d0eac]
mov edi, 1
jmp case.default.0x4d0e24
mov edi, 2
jmp case.default.0x4d0e24
mov edi, 5
jmp case.default.0x4d0e24
mov edi, 6
mov edx, dword [esi + 0x2e4]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
test edi, edi
je 0x4d0e5d
push edi
push esi
call fcn.004f8070
lea eax, [esp + 0x1ac]
push eax
mov dword [esi + 0x12c], 1
call fcn.00527550
lea ecx, [esp + 0x2bc]
push ecx
call fcn.00527550
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.00549930
add esp, 0x3c0
ret 0xc