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

Disassembly:
push 0xffffffffffffffff
push 0x4b5809
mov eax, dword fs:[0]
push eax
sub esp, 0x234
mov eax, dword [0x4f4930]
xor eax, esp
mov dword [esp + 0x230], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4f4930]
xor eax, esp
push eax
lea eax, [esp + 0x248]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi + 0xafc]
xor ebx, ebx
cmp eax, ebx
je 0x45f81a
push 0x4cc068
push str.system
push eax
call fcn.0045bae0
mov esi, eax
mov dword [esp + 0x40], esi
mov byte [esp + 0x38], bl
mov dword [esp + 0x34], ebx
mov ecx, edi
mov dword [esp + 0x250], ebx
call fcn.0045e000
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [edi + 0x10]
mov dword [edi + 0x1834], eax
xor eax, eax
cmp ecx, ebx
jle 0x45e80f
mov edi, edi
mov edx, dword [edi + 0xc]
mov edx, dword [edx + eax*4]
inc eax
cmp eax, ecx
mov byte [edx + 0x71], 0
jl 0x45e800
cmp esi, ebx
mov dword [esp + 0x30], ebx
jle 0x45f6f3
jmp 0x45e820
xor eax, eax
push 0x7e
push eax
lea ecx, [esp + 0xce]
push ecx
mov word [esp + 0xd0], ax
call fcn.00476c30
mov edx, dword [esp + 0x3c]
add esp, 0xc
push edx
push str.bundle_d
lea eax, [esp + 0xcc]
push 0x40
push eax
call fcn.0046fdbd
mov edx, dword [edi + 0xafc]
add esp, 0x10
push 0x4cc138
lea ecx, [esp + 0xc8]
push ecx
push edx
mov ecx, edi
call fcn.0045b9d0
mov ebx, eax
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x45f6e0
mov ecx, dword [edi + 0xafc]
push 0x4cc164
lea eax, [esp + 0xc8]
push eax
push ecx
mov ecx, edi
call fcn.0045b9d0
mov dword [esp + 0x28], eax
test eax, eax
je 0x45f6e0
mov eax, dword [edi + 0x10]
xor esi, esi
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x45e907
jmp 0x45e8c0
mov eax, dword [edi + 0xc]
lea ebp, [esi*4]
mov edx, dword [eax + ebp]
add eax, ebp
mov eax, dword [edx]
push ebx
push eax
call fcn.0046ff94
add esp, 8
test eax, eax
jne 0x45e900
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + ebp]
add eax, ebp
mov eax, dword [edx + 0x10]
push ecx
push eax
call fcn.0046ff94
add esp, 8
test eax, eax
je 0x45e9b8
inc esi
cmp esi, dword [esp + 0x2c]
jl 0x45e8c0
mov ecx, dword [edi + 0xafc]
push str.x64support
lea eax, [esp + 0xc8]
push eax
push ecx
call fcn.0045bbf0
push str.imever
lea edx, [esp + 0xc8]
mov byte [esp + 0x23], al
mov eax, dword [edi + 0xafc]
push edx
push eax
mov ecx, edi
call fcn.0045b9d0
mov esi, eax
mov dword [esp + 0x2c], esi
test esi, esi
je 0x45e987
xor ecx, ecx
push 0x3e
push ecx
lea edx, [esp + 0x4e]
push edx
mov word [esp + 0x50], cx
call fcn.00476c30
mov ecx, dword [edi + 0xaf4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
add esp, 0xc
push 0x20
lea edx, [esp + 0x48]
push edx
call eax
mov edx, esi
lea ecx, [esp + 0x44]
call fcn.0041f770
test eax, eax
jl 0x45f6e0
push 0x84
call fcn.004706a8
add esp, 4
mov dword [esp + 0x3c], eax
mov byte [esp + 0x250], 1
test eax, eax
je 0x45eb6f
call fcn.00456200
mov ebx, eax
mov dword [esp + 0x24], eax
jmp 0x45eb75
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx + esi*4]
mov byte [edx + 0x71], 1
mov eax, dword [edi + 0xc]
mov esi, dword [eax + esi*4]
mov dword [esp + 0x24], esi
test esi, esi
je 0x45e907
mov edx, dword [edi + 0xafc]
push 0x4cc068
lea ecx, [esp + 0xc8]
push ecx
push edx
mov ecx, edi
call fcn.0045bae0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], 0
test eax, eax
jle 0x45f6e0
xor eax, eax
push 0x7e
push eax
lea ecx, [esp + 0x4e]
push ecx
mov word [esp + 0x50], ax
call fcn.00476c30
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
add esp, 0xc
push edx
push eax
push str.bundle_dcom_d
lea ecx, [esp + 0x50]
push 0x40
push ecx
call fcn.0046fdbd
mov eax, dword [edi + 0xafc]
add esp, 0x14
push 0x4cc138
lea edx, [esp + 0x48]
push edx
push eax
mov ecx, edi
call fcn.0045b9d0
mov ebp, eax
test ebp, ebp
je 0x45eb57
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 0x54]
xor esi, esi
test ebx, ebx
jle 0x45eb57
jmp 0x45ea70
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x50]
mov ecx, dword [eax + esi*4]
mov edx, dword [ecx]
lea eax, [eax + esi*4]
push ebp
push edx
call fcn.0046ff94
add esp, 8
test eax, eax
je 0x45ea97
inc esi
cmp esi, ebx
jl 0x45ea70
jmp 0x45eb57
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + 0x50]
mov esi, dword [eax + esi*4]
test esi, esi
je 0x45eb57
mov edx, dword [edi + 0xafc]
push str.async
lea ecx, [esp + 0x48]
push ecx
push edx
call fcn.0045bbf0
mov byte [esi + 0x10], al
mov ecx, dword [edi + 0xafc]
push str.index
lea eax, [esp + 0x48]
push eax
push ecx
mov ecx, edi
call fcn.0045bae0
cmp byte [esi + 0x10], 0
mov dword [esi + 0x1c], eax
jne 0x45eafc
mov eax, dword [edi + 0xafc]
push str.enable
lea edx, [esp + 0x48]
push edx
push eax
call fcn.0045bbf0
mov byte [esi + 0x14], al
mov edx, dword [edi + 0xafc]
push str.preload
lea ecx, [esp + 0x48]
push ecx
push edx
call fcn.0045bbf0
mov byte [esi + 0x15], al
mov ecx, dword [edi + 0xafc]
push str.hotkey
lea eax, [esp + 0x48]
push eax
push ecx
mov ecx, edi
call fcn.0045bae0
mov dword [esi + 0x18], eax
cmp dword [edi + 0x48], 2
jne 0x45eb57
cmp byte [esi + 0x14], 0
je 0x45eb57
push 1
push ebx
lea edx, [esp + 0x3c]
push edx
push edi
call fcn.00459050
test al, al
jne 0x45eb57
lea ecx, [esp + 0x34]
call fcn.0041a4d0
mov eax, dword [esp + 0x28]
inc eax
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
jl 0x45ea03
jmp 0x45f6e0
xor ebx, ebx
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x20]
mov byte [esp + 0x250], 0
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45eb84
sub eax, edx
sar eax, 1
mov ebp, eax
lea esi, [ebp + 1]
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x18], esi
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov esi, eax
add esp, 4
test esi, esi
je 0x45ebd1
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push ebp
push eax
push ecx
push esi
call fcn.004710fb
add esp, 0x10
push 0x4cc194
lea edx, [esp + 0xc8]
mov dword [ebx], esi
mov eax, dword [edi + 0xafc]
push edx
push eax
mov ecx, edi
call fcn.0045bae0
push 0x4cc140
lea ecx, [esp + 0xc8]
mov dword [ebx + 0x3c], eax
mov edx, dword [edi + 0xafc]
push ecx
push edx
mov ecx, edi
call fcn.0045b9d0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45ec18
xor esi, esi
jmp 0x45ec6d
lea edx, [eax + 2]
jmp 0x45ec20
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45ec20
sub eax, edx
sar eax, 1
mov ebp, eax
lea esi, [ebp + 1]
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x20], esi
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov esi, eax
add esp, 4
test esi, esi
je 0x45ec6d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push ebp
push eax
push ecx
push esi
call fcn.004710fb
add esp, 0x10
push str.author
lea edx, [esp + 0xc8]
mov dword [ebx + 4], esi
mov eax, dword [edi + 0xafc]
push edx
push eax
mov ecx, edi
call fcn.0045b9d0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45ec97
xor esi, esi
jmp 0x45eced
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45eca0
sub eax, edx
sar eax, 1
mov ebp, eax
lea esi, [ebp + 1]
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x20], esi
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov esi, eax
add esp, 4
test esi, esi
je 0x45eced
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push ebp
push eax
push ecx
push esi
call fcn.004710fb
add esp, 0x10
push str.description
lea edx, [esp + 0xc8]
mov dword [ebx + 8], esi
mov eax, dword [edi + 0xafc]
push edx
push eax
mov ecx, edi
call fcn.0045b9d0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45ed17
xor esi, esi
jmp 0x45ed6d
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45ed20
sub eax, edx
sar eax, 1
mov ebp, eax
lea esi, [ebp + 1]
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x20], esi
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov esi, eax
add esp, 4
test esi, esi
je 0x45ed6d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push ebp
push eax
push ecx
push esi
call fcn.004710fb
add esp, 0x10
mov eax, dword [esp + 0x28]
mov dword [ebx + 0xc], esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45ed77
sub eax, edx
sar eax, 1
mov ebp, eax
lea esi, [ebp + 1]
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x18], esi
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov esi, eax
add esp, 4
test esi, esi
je 0x45edc4
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
push ebp
push eax
push ecx
push esi
call fcn.004710fb
add esp, 0x10
push 0x4ddbd4
lea edx, [esp + 0xc8]
mov dword [ebx + 0x10], esi
mov eax, dword [edi + 0xafc]
push edx
push eax
mov ecx, edi
call fcn.0045b9d0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edee
xor esi, esi
jmp 0x45ee3e
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45edf1
sub eax, edx
sar eax, 1
mov ebp, eax
lea esi, [ebp + 1]
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x20], esi
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov esi, eax
add esp, 4
test esi, esi
je 0x45ee3e
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push ebp
push eax
push ecx
push esi
call fcn.004710fb
add esp, 0x10
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x14], esi
test eax, eax
jne 0x45ee4d
xor esi, esi
jmp 0x45ee9d
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45ee50
sub eax, edx
sar eax, 1
mov ebp, eax
lea esi, [ebp + 1]
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x18], esi
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov esi, eax
add esp, 4
test esi, esi
je 0x45ee9d
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
push ebp
push eax
push ecx
push esi
call fcn.004710fb
add esp, 0x10
push str.RepairCycle
lea edx, [esp + 0xc8]
mov dword [ebx + 0x18], esi
mov eax, dword [edi + 0xafc]
push edx
push eax
mov ecx, edi
call fcn.0045bae0
mov dword [ebx + 0x28], eax
test eax, eax
jne 0x45eec9
mov dword [ebx + 0x28], 0x1e0
mov edx, dword [edi + 0xafc]
push str.LastTime
lea ecx, [esp + 0xc8]
push ecx
push edx
mov ecx, edi
call fcn.0045b9d0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45eef0
xor esi, esi
jmp 0x45ef40
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45eef3
sub eax, edx
sar eax, 1
mov ebp, eax
lea esi, [ebp + 1]
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x2c], esi
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov esi, eax
add esp, 4
test esi, esi
je 0x45ef40
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
push ebp
push eax
push ecx
push esi
call fcn.004710fb
add esp, 0x10
mov dword [ebx + 0x24], esi
test esi, esi
je 0x45ef4d
cmp word [esi], 0
jne 0x45efc2
xor edx, edx
push 0x7e
push edx
lea eax, [esp + 0x4e]
push eax
mov word [esp + 0x50], dx
call fcn.00476c30
add esp, 0xc
lea esi, [esp + 0x44]
call fcn.0045c790
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45ef72
sub eax, edx
sar eax, 1
mov ebp, eax
lea esi, [ebp + 1]
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x18], esi
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov esi, eax
add esp, 4
test esi, esi
je 0x45efbf
mov ecx, dword [esp + 0x18]
push ebp
lea eax, [esp + 0x48]
push eax
push ecx
push esi
call fcn.004710fb
add esp, 0x10
mov dword [ebx + 0x24], esi
mov eax, dword [edi + 0xafc]
push str.LocalSave
lea edx, [esp + 0xc8]
push edx
push eax
call fcn.0045bbf0
push str.LocalName
lea ecx, [esp + 0xc8]
mov byte [ebx + 0x2c], al
mov edx, dword [edi + 0xafc]
push ecx
push edx
mov ecx, edi
call fcn.0045b9d0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45f005
xor esi, esi
jmp 0x45f059
lea edx, [eax + 2]
jmp 0x45f010
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45f010
sub eax, edx
sar eax, 1
mov ebp, eax
xor ecx, ecx
lea ebx, [ebp + 1]
mov eax, ebx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov esi, eax
add esp, 4
test esi, esi
je 0x45f055
mov eax, dword [esp + 0x18]
push ebp
push eax
push ebx
push esi
call fcn.004710fb
add esp, 0x10
mov ebx, dword [esp + 0x24]
push 0x4dc29c
lea ecx, [esp + 0xc8]
mov dword [ebx + 0x30], esi
mov edx, dword [edi + 0xafc]
push ecx
push edx
mov ecx, edi
call fcn.0045b9d0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45f083
xor esi, esi
jmp 0x45f0cf
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45f086
sub eax, edx
sar eax, 1
mov ebp, eax
xor ecx, ecx
lea ebx, [ebp + 1]
mov eax, ebx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov esi, eax
add esp, 4
test esi, esi
je 0x45f0cb
mov eax, dword [esp + 0x18]
push ebp
push eax
push ebx
push esi
call fcn.004710fb
add esp, 0x10
mov ebx, dword [esp + 0x24]
push str.imagefile
lea ecx, [esp + 0xc8]
mov dword [ebx + 0x34], esi
mov edx, dword [edi + 0xafc]
push ecx
push edx
mov ecx, edi
call fcn.0045b9d0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45f0f9
xor esi, esi
jmp 0x45f149
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45f100
sub eax, edx
sar eax, 1
mov ebp, eax
xor ecx, ecx
lea ebx, [ebp + 1]
mov eax, ebx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov esi, eax
add esp, 4
test esi, esi
je 0x45f145
mov eax, dword [esp + 0x18]
push ebp
push eax
push ebx
push esi
call fcn.004710fb
add esp, 0x10
mov ebx, dword [esp + 0x24]
push str.hasconfig
lea ecx, [esp + 0xc8]
mov dword [ebx + 0x38], esi
mov edx, dword [edi + 0xafc]
push ecx
push edx
call fcn.0045bbf0
mov byte [ebx + 0x73], al
mov ecx, dword [edi + 0xafc]
push str.installtime
lea eax, [esp + 0xc8]
push eax
push ecx
mov ecx, edi
call fcn.0045bae0
push str.distributetime
lea edx, [esp + 0xc8]
mov dword [ebx + 0x74], eax
mov eax, dword [edi + 0xafc]
push edx
push eax
mov ecx, edi
call fcn.0045bae0
mov cl, byte [esp + 0x1f]
xor ebp, ebp
push str.hidden
lea edx, [esp + 0xc8]
mov dword [ebx + 0x78], eax
mov byte [ebx + 0x70], cl
mov dword [ebx + 0x40], ebp
mov dword [ebx + 0x44], ebp
mov dword [ebx + 0x48], ebp
mov dword [ebx + 0x4c], ebp
mov byte [ebx + 0x71], 1
mov eax, dword [edi + 0xafc]
push edx
push eax
call fcn.0045bbf0
mov esi, dword [ebx]
push edi
mov byte [ebx + 0x7c], al
call fcn.0045dd20
test al, al
je 0x45f1e9
mov byte [ebx + 0x7c], 1
mov edx, dword [edi + 0xafc]
push str.forceenable
lea ecx, [esp + 0xc8]
push ecx
push edx
call fcn.0045bbf0
mov byte [ebx + 0x7d], al
mov ecx, dword [edi + 0xafc]
push str.loaddisable
lea eax, [esp + 0xc8]
push eax
push ecx
call fcn.0045bbf0
push str.uncheckable
lea edx, [esp + 0xc8]
mov byte [ebx + 0x7e], al
mov eax, dword [edi + 0xafc]
push edx
push eax
call fcn.0045bbf0
push str.gamedisable
lea ecx, [esp + 0xc8]
mov byte [ebx + 0x7f], al
mov edx, dword [edi + 0xafc]
push ecx
push edx
call fcn.0045bbf0
mov byte [ebx + 0x80], al
mov ecx, dword [edi + 0xafc]
push str.win10metrodisable
lea eax, [esp + 0xc8]
push eax
push ecx
call fcn.0045bbf0
push 0x4cc068
lea edx, [esp + 0xc8]
mov byte [ebx + 0x81], al
mov eax, dword [edi + 0xafc]
push edx
push eax
mov ecx, edi
call fcn.0045bae0
cmp eax, ebp
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], ebp
jle 0x45f662
push 0x50
call fcn.004706a8
xor ebp, ebp
add esp, 4
cmp eax, ebp
je 0x45f305
mov dword [eax + 8], ebp
mov dword [eax + 4], ebp
mov dword [eax], ebp
mov dword [eax + 0xc], SysReAllocString
mov byte [eax + 0x10], 0
mov byte [eax + 0x14], 0
mov byte [eax + 0x15], 0
mov dword [eax + 0x18], ebp
mov dword [eax + 0x20], ebp
mov dword [eax + 0x24], ebp
mov dword [eax + 0x28], ebp
mov dword [eax + 0x2c], ebp
mov dword [eax + 0x30], ebp
mov dword [eax + 0x34], ebp
mov dword [eax + 0x38], ebp
mov dword [eax + 0x3c], ebp
mov dword [eax + 0x40], ebp
mov dword [eax + 0x44], ebp
mov dword [eax + 0x48], ebp
mov byte [eax + 0x4c], 0
mov byte [eax + 0x4d], 0
mov esi, eax
mov dword [esp + 0x28], eax
jmp 0x45f30b
xor esi, esi
mov dword [esp + 0x28], esi
push 0x7e
lea edx, [esp + 0x4a]
xor ecx, ecx
push ebp
push edx
mov word [esp + 0x50], cx
call fcn.00476c30
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
add esp, 0xc
push eax
push ecx
push str.bundle_dcom_d
lea edx, [esp + 0x50]
push 0x40
push edx
call fcn.0046fdbd
mov ecx, dword [edi + 0xafc]
add esp, 0x14
push 0x4cc138
lea eax, [esp + 0x48]
push eax
push ecx
mov ecx, edi
call fcn.0045b9d0
mov dword [esp + 0x18], eax
cmp eax, ebp
jne 0x45f364
xor ebp, ebp
jmp 0x45f3b8
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x45f367
sub eax, edx
sar eax, 1
mov ebx, eax
lea ebp, [ebx + 1]
xor ecx, ecx
mov eax, ebp
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x2c], ebp
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x45f3b4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
push ebx
push eax
push ecx
push ebp
call fcn.004710fb
add esp, 0x10
mov ebx, dword [esp + 0x24]
push 0x4cc140
lea edx, [esp + 0x48]
mov dword [esi], ebp
mov eax, dword [edi + 0xafc]
push edx
push eax
mov ecx, edi
call fcn.0045b9d0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45f3de
xor ebp, ebp
jmp 0x45f42e
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45f3e1
sub eax, edx
sar eax, 1
mov esi, eax
xor ecx, ecx
lea ebx, [esi + 1]
mov eax, ebx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x45f426
mov eax, dword [esp + 0x18]
push esi
push eax
push ebx
push ebp
call fcn.004710fb
add esp, 0x10
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
push str.description
lea ecx, [esp + 0x48]
mov dword [esi + 4], ebp
mov edx, dword [edi + 0xafc]
push ecx
push edx
mov ecx, edi
call fcn.0045b9d0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45f455
xor ebp, ebp
jmp 0x45f4ad
lea edx, [eax + 2]
jmp 0x45f460
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45f460
sub eax, edx
sar eax, 1
mov esi, eax
xor ecx, ecx
lea ebx, [esi + 1]
mov eax, ebx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004706a8
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x45f4a5
mov eax, dword [esp + 0x18]
push esi
push eax
push ebx
push ebp
call fcn.004710fb
add esp, 0x10
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
push str.async
lea ecx, [esp + 0x48]
mov dword [esi + 8], ebp
mov edx, dword [edi + 0xafc]
push ecx
push edx
call fcn.0045bbf0
mov byte [esi + 0x10], al
mov ecx, dword [edi + 0xafc]
push str.index
lea eax, [esp + 0x48]
push eax
push ecx
mov ecx, edi
call fcn.0045bae0
xor edx, edx
mov dword [esi + 0x1c], eax
push 0xfe
push edx
lea eax, [esp + 0x14e]
push eax
mov word [esp + 0x150], dx
call fcn.00476c30
mov ecx, dword [esi]
mov edx, dword [ebx]
add esp, 0xc
push ecx
push edx
push str._s._s
lea eax, [esp + 0x150]
push 0x80
push eax
call fcn.0046fdbd
add esp, 0x14
cmp dword [0x4f5ae0], 0
mov ebp, 0x4f5ae0
je 0x45f557
mov edx, dword [ebp]
lea ecx, [esp + 0x144]
push ecx
push edx
call fcn.0046ff94
add esp, 8
test eax, eax
je 0x45f5e5
add ebp, 4
cmp dword [ebp], 0
jne 0x45f532
mov ecx, dword [edi + 0xafc]
push str.enable
lea eax, [esp + 0x48]
push eax
push ecx
call fcn.0045bbf0
mov byte [esi + 0x14], al
mov eax, dword [edi + 0xafc]
push str.preload
lea edx, [esp + 0x48]
push edx
push eax
call fcn.0045bbf0
push str.hotkey
lea ecx, [esp + 0x48]
mov byte [esi + 0x15], al
mov edx, dword [edi + 0xafc]
push ecx
push edx
mov ecx, edi
call fcn.0045bae0
mov dword [esi + 0x18], eax
cmp dword [edi + 0x48], 2
jne 0x45f5cb
cmp byte [esi + 0x14], 0
je 0x45f5cb
push 1
push ebx
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.00459050
test al, al
jne 0x45f5cb
lea ecx, [esp + 0x34]
call fcn.0041a4d0
mov eax, dword [ebx + 0x54]
mov ecx, dword [ebx + 0x58]
cmp eax, ecx
jne 0x45f63d
test ecx, ecx
jne 0x45f5eb
mov ebp, dword [ebx + 0x5c]
test ebp, ebp
jne 0x45f5f0
lea ebp, [ecx + 1]
jmp 0x45f5fa
mov byte [esi + 0x14], 0
jmp 0x45f570
lea ebp, [eax + eax]
test ebp, ebp
jl 0x45f64f
cmp ebp, 0x1fffffff
ja 0x45f64f
cmp ebp, ecx
jle 0x45f63d
mov eax, dword [ebx + 0x50]
lea edx, [ebp*4]
test eax, eax
jne 0x45f620
mov eax, dword [ebx + 0x60]
test eax, eax
jne 0x45f618
mov eax, fcn.00470104
push edx
call eax
add esp, 4
jmp 0x45f633
mov ecx, dword [ebx + 0x64]
test ecx, ecx
jne 0x45f62c
mov ecx, fcn.00470421
push edx
push eax
call ecx
add esp, 8
test eax, eax
je 0x45f64f
mov dword [ebx + 0x58], ebp
mov dword [ebx + 0x50], eax
mov ecx, dword [ebx + 0x54]
mov edx, dword [ebx + 0x50]
lea eax, [edx + ecx*4]
test eax, eax
je 0x45f64c
mov dword [eax], esi
inc dword [ebx + 0x54]
mov eax, dword [esp + 0x20]
inc eax
cmp eax, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
jl 0x45f2a6
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
cmp eax, ecx
jne 0x45f6ce
test ecx, ecx
jne 0x45f67c
mov esi, dword [edi + 0x18]
test esi, esi
jne 0x45f681
lea esi, [ecx + 1]
jmp 0x45f68b
lea esi, [eax + eax]
test esi, esi
jl 0x45f6e0
cmp esi, 0x1fffffff
ja 0x45f6e0
cmp esi, ecx
jle 0x45f6ce
mov eax, dword [edi + 0xc]
lea edx, [esi*4]
test eax, eax
jne 0x45f6b1
mov eax, dword [edi + 0x1c]
test eax, eax
jne 0x45f6a9
mov eax, fcn.00470104
push edx
call eax
add esp, 4
jmp 0x45f6c4
mov ecx, dword [edi + 0x20]
test ecx, ecx
jne 0x45f6bd
mov ecx, fcn.00470421
push edx
push eax
call ecx
add esp, 8
test eax, eax
je 0x45f6e0
mov dword [edi + 0x14], esi
mov dword [edi + 0xc], eax
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
lea eax, [ecx + eax*4]
test eax, eax
je 0x45f6dd
mov dword [eax], ebx
inc dword [edi + 0x10]
mov eax, dword [esp + 0x30]
inc eax
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x30], eax
jl 0x45e820
cmp dword [edi + 0x10], 0
je 0x45f7f3
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 0xc]
lea ebp, [eax + edx*4 - 4]
jmp 0x45f710
mov byte [esp + 0x1f], 0
cmp ebp, dword [edi + 0xc]
jne 0x45f71f
mov byte [esp + 0x1f], 1
mov ebx, dword [ebp]
cmp byte [ebx + 0x71], 0
jne 0x45f7e4
mov edx, dword [edi + 0xc]
mov eax, ebp
sub eax, edx
sar eax, 2
test eax, eax
jl 0x45f766
mov ecx, dword [edi + 0x10]
cmp eax, ecx
jge 0x45f766
lea esi, [ecx - 1]
cmp eax, esi
je 0x45f763
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea eax, [edx + eax*4]
lea edx, [ecx - 4]
push edx
lea edx, [eax + 4]
push edx
push ecx
push eax
call fcn.00470826
add esp, 0x10
dec dword [edi + 0x10]
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x30]
cmp eax, ecx
jne 0x45f7d2
test ecx, ecx
jne 0x45f780
mov esi, dword [edi + 0x34]
test esi, esi
jne 0x45f785
lea esi, [ecx + 1]
jmp 0x45f78f
lea esi, [eax + eax]
test esi, esi
jl 0x45f7e4
cmp esi, 0x1fffffff
ja 0x45f7e4
cmp esi, ecx
jle 0x45f7d2
mov eax, dword [edi + 0x28]
lea edx, [esi*4]
test eax, eax
jne 0x45f7b5
mov eax, dword [edi + 0x38]
test eax, eax
jne 0x45f7ad
mov eax, fcn.00470104
push edx
call eax
add esp, 4
jmp 0x45f7c8
mov ecx, dword [edi + 0x3c]
test ecx, ecx
jne 0x45f7c1
mov ecx, fcn.00470421
push edx
push eax
call ecx
add esp, 8
test eax, eax
je 0x45f7e4
mov dword [edi + 0x30], esi
mov dword [edi + 0x28], eax
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x28]
lea eax, [ecx + eax*4]
test eax, eax
je 0x45f7e1
mov dword [eax], ebx
inc dword [edi + 0x2c]
cmp byte [esp + 0x1f], 0
jne 0x45f7f3
sub ebp, 4
jmp 0x45f710
lea edx, [edi + 0x137c]
push edx
mov dword [edi + 0x1834], 0
call fcn.004239c0
lea ecx, [esp + 0x34]
mov byte [edi + 0x45], 0
mov byte [edi + 0x46], 1
call fcn.0041a420
mov ecx, dword [esp + 0x248]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x230]
xor ecx, esp
call fcn.0046fdae
add esp, 0x240
ret